Schrift
[thread]6813[/thread]

Delete Files: File::Glob, File::DosGlob, oder anders

Leser: 2


<< >> 8 Einträge, 1 Seite
esskar
 2005-03-23 21:24
#52899 #52899
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
hi.

ich würde gerne files, die auf eine bestimmte Endung enden und ein gewisses modified datum überschritten haben, löschen.
Momentan mach ich das mit opendir, readdir und stat (wobei ich nicht alle files einlese, sondern quasi iteriere und dann lösche). Jetzt seh ich hier immer wieder die Verwenung von glob; kann man das damit auch machen (hab es leider noch nicht verwendet, und werde auch nicht wirklich daraus schlau) und hat es Vorteile? Das ganze soll am Ende schnell sein; nichts anderes!
ptk
 2005-03-23 21:34
#52900 #52900
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Schreib einen Benchmark! opendir/readdir ist naeher am System, also theoretisch schneller. glob() hat einige Eigenheiten, die es nicht fuer Systeme tauglich machen, bei denen gerne Shell-Metazeichen verwendet werden (z.B. Leerzeichen). Wenn's mit opendir bei dir funktioniert, wuerde ich es dabei lassen.
esskar
 2005-03-23 21:44
#52901 #52901
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ei gut. danke. so gefällt mir das! :)
esskar
 2005-03-23 23:34
#52902 #52902
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
passt am Rande hierher:
kann man File::find abgewöhnen, dass es rekursiv arbeitet?
pq
 2005-03-24 11:08
#52903 #52903
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
du könntest sowas machen:
Code: (dl )
1
2
3
4
find ({
 wanted => \&wanted,
 preprocess =>sub{ @_ = grep !-d, @_ }
}, "dir");
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
ptk
 2005-03-24 11:27
#52904 #52904
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Jemand koennte ja -mindepth und -maxdepth fuer find2perl implementieren :-)
sesth
 2005-03-24 22:37
#52905 #52905
User since
2005-02-01
181 Artikel
BenutzerIn
[default_avatar]
Falls Du das unter Windows machst, könnte auch noch folgendes gehen:
Code: (dl )
1
2
3
4
5
6
my @files = `dir /B /S $root\\*.$ext`;
foreach my $file (@files) {
chomp $file;
if (-M $file > $timelimit)
unlink ($file);
}
Gruß
Thomas
esskar
 2005-03-24 23:10
#52906 #52906
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
@sesth:
nö, sowas fangen wir gar nicht erst an :)
aber danke!
<< >> 8 Einträge, 1 Seite



View all threads created 2005-03-23 21:24.