Seite 1 von 1
File Date geht nicht
Verfasst: 23.07.2010 09:28
von Fitsch
Hallöchen
da währe ich mal wieder mit einem kleinen problemchen.
Und zwar wolte mein chef ein kleines Programm haben das Dateien in einem Ordner Löscht die älter als x Tage sind.
Gesgagt getan das hat auch soweit funktioniert bis auf heute morgen seit heute morgen bekomme ich kein einziges Datum einer Datei zurück...
Habe es auch schon auf mehreren Rechnern versucht leider nichts
Selbst wenn ich eine Console öffne und nur den Dateinamen und Das Datum angezeigt bekommen möchte geht es nicht
habe ich wieder was übersehen und es hat nur auf gut Glück funktioniert ?
Code: Alles auswählen
OpenConsole()
ExamineDirectory(0,"C:\", "*.*")
While NextDirectoryEntry(0)
PrintN(DirectoryEntryName(0) + " " + Str(GetFileDate(DirectoryEntryName(0),#PB_Date_Created)))
Delay(2000)
Wend
CloseConsole()
Re: File Date geht nicht
Verfasst: 23.07.2010 10:00
von FrW
Hallo Fitsch,
warum es nicht geht kann ich Dir nicht sagen.
Aber probiere es mal mit
Code: Alles auswählen
OpenConsole()
ExamineDirectory(0,"C:\", "*.*")
While NextDirectoryEntry(0)
If DirectoryEntryType(0) = #PB_DirectoryEntry_File
PrintN(DirectoryEntryName(0) + " - Datum : " + FormatDate("%dd.%mm.%yyyy", DirectoryEntryDate(0, #PB_Date_Created)))
EndIf
Delay(100)
Wend
CloseConsole()
Gruß
Re: File Date geht nicht
Verfasst: 23.07.2010 10:11
von Fitsch
Danke so geht es, warum es auch immer gestern noch funktionierte...
Ich werde es mal in meinen code übernehmen bzw. anpassen
Danke dir nochmals
Edit:
Mhh Leider geht es in meine Proggi nicht, poste jetzt mal meinen Code
Code: Alles auswählen
;Laden der Einstellungen
OpenPreferences("settings.ini")
PreferenceGroup("Global")
Global Imagepath$ = ReadPreferenceString("Imagepath", "")
Global Lifetime.i = Val(ReadPreferenceString("Lifetime", ""))
;Tage in Sekunden umrechnen
Lifetime.i = (Lifetime * 24 * 60 * 60)
ClosePreferences()
;-=Main=-
OpenConsole()
Select DayOfWeek(Date())
Case 0
Imagepath$ = Imagepath$ + "Sonntag"
Tag$ = "Sonntag"
Case 1
Imagepath$ = Imagepath$ + "Montag"
Tag$ = "Montag"
Case 2
Imagepath$ = Imagepath$ + "Dienstag"
Tag$ = "Dienstag"
Case 3
Imagepath$ = Imagepath$ + "Mittwoch"
Tag$ = "Mittwoch"
Case 4
Imagepath$ = Imagepath$ + "Donnerstag"
Tag$ = "Donnerstag"
Case 5
Imagepath$ = Imagepath$ ;+ "Freitag"
Tag$ = "Freitag"
Case 6
Imagepath$ = Imagepath$ + "Samstag"
Tag$ = "Samstag"
Default
End
EndSelect
ConsoleTitle("Filechecker V.0.2 " + Tag$)
PrintN(Imagepath$)
ExamineDirectory(0, Imagepath$,"*.*")
While NextDirectoryEntry(0)
ConsoleColor(7,0)
If DirectoryEntryType(0) = #PB_DirectoryEntry_File
;Dateidatum (Unix Timestamp)
File_date$ = Str(DirectoryEntryDate(0, #PB_Date_Created))
PrintN(DirectoryEntryName(0) + " " + FormatDate("%dd.%mm.%yyyy",File_date))
If(Date() - File_date) > Lifetime
If DirectoryEntryName(0) = ".." Or DirectoryEntryName(0) = "."
ConsoleColor(10,0)
PrintN("Datei wurde Ausgelasen")
Else
ConsoleColor(12,0)
;DeleteFile(DirectoryEntryName(0))
If DeleteFile(DirectoryEntryName(0)) = 0
PrintN("Datei konnte nicht Gelöscht werden")
Else
PrintN("Datei wurde Gelöscht!!!")
EndIf
EndIf
Else
ConsoleColor(10,0)
PrintN("Datei wurde Ausgelasen")
EndIf
Delay(2000)
EndIf
Wend
FinishDirectory(0)
;Snapshot Starten
;ConsoleColor(7,0)
; RunProgram("snapshot", " C: C:\"+Tag$ +"\"+Tag$ +"_"+ FormatDate("%dd.%mm.%yyyy",Date())+".sna -R", "", #PB_Program_Open)
; CloseProgram(snapshot)
Delay(10000)
CloseConsole()
Dazu die settings.ini
Re: File Date geht nicht
Verfasst: 23.07.2010 10:35
von FrW
Hallo Fitsch,
warum ist bei Case 5 (Freitag) ein Kommentar?
Geht es vielleicht deshalb nicht?
Gruß
Re: File Date geht nicht
Verfasst: 23.07.2010 10:47
von Fitsch
nein Das kommentar hatte ich nur dahin gemacht damit es nicht Das Freitag an den in der ini eingetragenen Pfad anhängt...
Re: File Date geht nicht
Verfasst: 23.07.2010 11:40
von FrW
Hallo Fitsch,
a) Du solltest EnableExplicit benutzen.
File_date und File_date$ passen nicht zusammen.
b) DeleteFile() benötigt eine Pfadangabe (war zumindest bei mir so) !! Achtung Directory richtig setzen !!
Gruß
Re: File Date geht nicht
Verfasst: 23.07.2010 12:20
von Christian+
Wie schon gesagt wurde nutze EnableExplicit dann findest du Fehler viel leichter.
Bei DirectoryEntryDate hast du mit File_date und File_date$ zwei verschiedene variablen verwendet da du da eigentlich gar nicht mit Strings arbeiten musst würde ich das so schreiben:
Code: Alles auswählen
File_date = DirectoryEntryDate(0, #PB_Date_Created)
PrintN(DirectoryEntryName(0) + " " + FormatDate("%dd.%mm.%yyyy",File_date))
Bei DeleteFile brauchst du auch einen Pfad sonst wird die Datei im aktuellen Verzeichnis gesucht.
Dein Select Case für den Tag kannst du übrigens auch viel einfacher schreiben:
Code: Alles auswählen
Tag$ = StringField("Sonntag|Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag", DayOfWeek(Date())+1, "|")
Imagepath$ = Imagepath$ + Tag$ + "\"
Und für deine ini Datei du kannst statt Val(ReadPreferenceString("Lifetime", "")) auch gleich den ReadPreferenceLong() Befehl verwenden.
mfg Christian+
Re: File Date geht nicht
Verfasst: 12.08.2010 12:22
von Fitsch
Soory das ich so Spät antworte war jetzt knapp 3 wochen im Urlaub ^^
Danke für die Tipps
