| Dateien löschen mit Filter und Datumskriterium |
|
|
|
| MS-Access Codes - Codeschnipsel Dateisystem | ||||||||||||||||||||||
| Mittwoch, den 13. Oktober 2010 um 00:00 Uhr | ||||||||||||||||||||||
|
Tags:
Problemstellung: Manchmal ist es erforderlich alte Dateien zu löschen, egal ob es alte Import-, Sicherungsdateien o.ä. sind. Jetzt möchte man aber die zu löschenden Dateien einschränken, ob nun nach Dateinamen und/oder Dateidatum, mit Unterverzeichnissen oder ohne. Für dieses Problem möchte ich hier eine Lösung vorstellen. Es ist eine Mischung aus FileSystemObject(FSO)- und API-Funktionen. 1. API-Aufrufe zum Löschen der Dateien Hier kommt die API-Funktion "SHFileOperation" zum Einsatz 1.1. Declare- und Konstantendeklaration
Wobei die Konstante
Private Const FOF_ALLOWUNDO = &H40& dafür zuständig ist das die gelöschten Dateien im Papierkorb landen und die Konstante
FOF_NOCONFIRMATION = &H10 die Bestätigung jeder Dateilöschung deaktiviert. Dies rufen wir dann in dieser Sub auf: 1.2. Dateien in den Papierkorb löschen
Private Sub Delete_to_Trash(sFilename As String)
2. Lesen der Dateien mit FSO, prüfen der Kriterien und löschen der Dateien Die folgende Sub macht dann die eigentliche Arbeit
Public Sub DeleteCriteriaFiles(sPath As String, Optional sCriteria As String = "*.*", _ Folgende Parameter werden der Prozedur übergeben:
sPath As String Der komplette Pfad des betreffenden Verzeichnisses mit abschliessenden Backslash
Optional sCriteria As String = "*.*" Das Filterkriterium für die Dateinamen, Standard = Alle (*.*)
Optional dtCriteriaDate As String = "" Das Filterkriterium für das Dateidatum Standard = Kein ("")
Bei einer Angabe eines Datums werden alle Dateien deren letztes Änderungsdatum <= dem Kriterium entspricht gelöscht.
Wird etwas anderes gewünscht muss diese Zeile angepasst werden:
If CDate(Left(oFile.DateLastModified, 10)) <= CDate(dtCriteriaDate) Then Delete_to_Trash oFile.Path Optional bSubFolder As Boolean = False Sollen Unterverzeichnisse einbezogen werden? Standard = Nein (False)
Der Aufruf z.B.:
DeleteCriteriaFiles "D:\users\Test0\", "*.txt", "01.09.2010", True Würde aus dem Verzeichnis "D:\Users\Test0", mit Unterverzeichnissen, alle txt-Dateien löschen deren letztes Änderungsdatum
kleiner gleich dem 01.09.2010 ist.
|
||||||||||||||||||||||
| Aktualisiert ( Montag, den 25. Oktober 2010 um 17:24 Uhr ) | ||||||||||||||||||||||
Login
Latest News
- 26 October 2011 Aktuelle Servicepacks Office
- 04 September 2011 Arbeiten mit EXIF-Tags
- 18 June 2011 Errechnen einer IBAN mit Access
- 08 June 2011 Nächste freie Nummer/Zahl ermitteln
- 30 May 2011 Verwaltung eines Skatturniers
Latest Comments
- Zwischenablage in MS-Access nu...
Hallo Raul, auch Dir danke für den Hinweis. Werde ... Mehr...
10.04.12 11:11
von TommyK - Zwischenablage in MS-Access nu...
Hallo Tommy, ich kann das von haarwurm bestätigen.... Mehr...
10.04.12 10:38
von Raul Katos - Userverwaltung II
Hallo Donni, wir machen mal hier weiter: http://ww... Mehr...
15.01.12 17:10
von TommyK - Userverwaltung II
Hallo Tommy, irgendwie habe ich das wohl nicht ric... Mehr...
15.01.12 16:31
von Donni - Userverwaltung II
Hallo Donni, dann setze in den Eigenschaften von "... Mehr...
15.01.12 09:45
von TommyK
Latest Downloads
Latest Forum Posts
-
-
- Datum problem
- In MS-Access - Fragen und Antworten
- at 06:04 on Mai 23, 2012 (CEST)
-
-
-
- zwei Tabellen in Abfrage verbinden - Probleme
- In MS-Access - Fragen und Antworten
- at 07:51 on Mai 16, 2012 (CEST)
-
-
-
- Änderung des Standarddruckers mittels VBA
- In MS-Access - Fragen und Antworten
- at 08:45 on Apr 13, 2012 (CEST)
-
-
-
- Serien-PDF-Dateien erstellen mit Code von Lebans
- In MS-Access - Fragen und Antworten
- at 17:30 on Apr 07, 2012 (CEST)
-
-
-
- Frage zu Unicounter
- In MS-Access - Fragen und Antworten
- at 08:24 on Mär 29, 2012 (CEST)
-
Download Statistik
41 Kategorien |


