Dateialter feststellen
Christian Bliß
- perl
0 Stefan Bach0 ToPeG
Hallo,
ich bräuchte eine Abfrage, die das Alter einer Datei feststellt. Ich kenne mich mit dieser Art wenig aus und bräuchte am besten die komplette Abfrage:
MfG Christian Bliß
Hallo,
ich bräuchte eine Abfrage, die das Alter einer Datei feststellt. Ich kenne mich mit dieser Art wenig aus und bräuchte am besten die komplette Abfrage:
Auf welchem System arbeitest du denn? Falls es Linux oder ähnliches ist, dann schauts wohl schlecht aus. Ich habe unter http://www.faqs.org/faqs/unix-faq/faq/part3/section-1.html folgednes gefunden:
3.1) How do I find the creation time of a file?
You can't - it isn't stored anywhere. Files have a last-modified
time (shown by "ls -l"), a last-accessed time (shown by "ls -lu")
and an inode change time (shown by "ls -lc").
Falls dir eine dieser Zeiten hilft, dann zeigt dir http://www.perldoc.com/perl5.6.1/pod/func/stat.html, wie du sie über Perl abfragen kannst.
Viele Grüße,
Stefan
- Falls die Datei test.txt älter ist als 24 h soll sie gelöscht werden.
Hallo
Das Alter einer Datei in Tagen ermittelt man mit:
$alter_in_tagen = -C $file
Unter Linux/Unix wird das alter der Datei seit dem letzten Verschieben/Kopieren der Datei angezeigt. Unter Windows wird das Alter der Datei seit dem Erstellen angezeigt.
Es wird das Alter angezeigt wie es zur Zeit des Scriptstartes war. Das bedeutet, wenn eine Datei nach dem Start des Scriptes erstellt/kopiert wurde, das Alter der Datei einen negativen Wert haben kann.
(will man es ganz genau haben dann kann man es so machen:
$alter_in_tagen_exakt = (-C $file)+((time - $^T)/60/60/24)
)
Bei kurzen laufenden Scripten ist das aber nicht wichtig.
Soll die Datei nach 24 Stunden Gelöscht werden, dann kann man folgendes Schreiben:
unlink $file if (-C $file)>=1;
Natürlich brauchst du auch die Berechtigung die Datei löschen zu dürften. Das ist der Fall wenn man in sie schreiben oder erstellen kann.
ToPeG