Perl voor Win32 v5.8.7 op WinXP SP2
Ik ben bezig met een lister die alle directories onder een gegeven rootdir uitleest. Met perl READDIR krijg je alle bestanden terug, ongeacht of het directories of files zijn. Door middel van de -d parameter kun je bepalen of een filenaam wel of niet een directory is.
Het volgende stukje code werkt, maar alleen als ik het uitvoer vanaf de te onderzoeken dir.
Als ik dit uitvoer vanaf D:\ = geen resultaat.
Uitvoeren vanaf D:/Dir1/Dir2/Dir3/Dir4 = Een keurige listing van directorynamen.
Indien ik het iets anders aanpak en niet probeer te bepalen of het een file of directory is, werkt het vanaf elke plek waar ik het uitvoer. Of dat nu de root is of een subdir. Helaas dien ik dan achteraf te bepalen of iets een directory is en dat vind ik minder handig.
Ik heb op Google gezocht, helaas geven de zoektermen 'perl readdir -d' heel veel resultaten, maar voornamelijk over de juiste syntax. Iemand met vergelijkbare problemen ben ik niet tegengekomen.
Heeft iemand voornoemd gedrag al eens eerder gezien of maak ik een denkfout?
Ik ben bezig met een lister die alle directories onder een gegeven rootdir uitleest. Met perl READDIR krijg je alle bestanden terug, ongeacht of het directories of files zijn. Door middel van de -d parameter kun je bepalen of een filenaam wel of niet een directory is.
Het volgende stukje code werkt, maar alleen als ik het uitvoer vanaf de te onderzoeken dir.
code:
1
2
3
4
5
6
7
8
9
10
| opendir(REPLAYS, "D:/Dir1/Dir2/Dir3/Dir4") || die "could not open dir\n";
while ( $file = readdir(REPLAYS))
{
if ( -d $file )
{
push (@contents,$file);
}
}
print "@contents"; |
Als ik dit uitvoer vanaf D:\ = geen resultaat.
Uitvoeren vanaf D:/Dir1/Dir2/Dir3/Dir4 = Een keurige listing van directorynamen.
Indien ik het iets anders aanpak en niet probeer te bepalen of het een file of directory is, werkt het vanaf elke plek waar ik het uitvoer. Of dat nu de root is of een subdir. Helaas dien ik dan achteraf te bepalen of iets een directory is en dat vind ik minder handig.
code:
1
2
3
| opendir(REPLAYS, "D:/Dir1/Dir2/Dir3/Dir4") || die "could not open dir\n"; @test = readdir(REPLAYS); print "@test"; |
Ik heb op Google gezocht, helaas geven de zoektermen 'perl readdir -d' heel veel resultaten, maar voornamelijk over de juiste syntax. Iemand met vergelijkbare problemen ben ik niet tegengekomen.
Heeft iemand voornoemd gedrag al eens eerder gezien of maak ik een denkfout?
[ Voor 4% gewijzigd door Wimmel op 21-09-2005 00:28 ]
Men are from Mars, women are meteors crashing into Mars.
Discogs