Thread In einem Verzeichnis Die neueste Datei finden (18 answers)
Opened by Matze2.pl at 2014-10-31 15:48

Matze2.pl
 2014-11-04 14:57
#178091 #178091
User since
2014-10-30
23 Artikel
BenutzerIn
[default_avatar]
hey hlubenow, das funktioniert super wenn ich ich einen pfad direkt angebe:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
my $mtime = 0;
my $latestfile = "";
find(\&wanted, "/var/bin/testverzeichnis/Projekte/Projektenummern/12/1234");
print "$latestfile\n";

sub wanted {
    my $name = $File::Find::name;
    if (-f $name) {
        my @stats = stat($name);
        if ($stats[9] > $mtime) {
            $mtime = $stats[9];
            $latestfile = $name;
        }
    }
}

ergebnis: /var/lib/testverzeichnis/Projekte/Projektenummern/12/1234/test.txt

wenn ich das aber in einer schleife ablaufen lasse:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
my @dirs = glob "/var/lib/testverzeichnis/Projekte/Projektenummern/*/*/";
foreach $dir (@dirs)
{
find(\&wanted, "$dir");
print "$dir\n$latestfile\n";
}
sub wanted 
{        
    my $name = $File::Find::name;
    if (-f $name) {
        my @stats = stat($name);
        if ($stats[9] > $mtime) 
                {       
            $mtime = $stats[9];
            $latestfile = $name;
                }
    }
}

kommt dieses ergebnis:
/var/lib/testverzeichnis/Projekte/Projektenummern/12/1234
/var/lib/testverzeichnis/Projekte/Projektenummern/12/1234/alter.pl
/var/lib/testverzeichnis/Projekte/Projektenummern/12/1235
/var/lib/testverzeichnis/Projekte/Projektenummern/12/1234/alter.pl
/var/lib/testverzeichnis/Projekte/Projektenummern/12/1236
/var/lib/testverzeichnis/Projekte/Projektenummern/12/1234/alter.pl
/var/lib/testverzeichnis/Projekte/Projektenummern/12/1255
/var/lib/testverzeichnis/Projekte/Projektenummern/12/1234/alter.pl
/var/lib/testverzeichnis/Projekte/Projektenummern/12/1275
/var/lib/testverzeichnis/Projekte/Projektenummern/12/1234/alter.pl
/var/lib/testverzeichnis/Projekte/Projektenummern/13/1345
/var/lib/testverzeichnis/Projekte/Projektenummern/12/1234/alter.pl


wie kann ich das denn in einer schleife laufen lassen so das er sich nur auf das angegebene verzeichnis bezieht.
Das problem jetzt ist wahrscheinlich das die test.txt in 1234 neuer ist als zum beispiel die bla.txt in 1235. kann ich das iwie beheben, dass er die test.txt überträgt?
Last edited: 2014-11-04 15:26:47 +0100 (CET)

View full thread In einem Verzeichnis Die neueste Datei finden