Willkommen in der Webstatt Zum Webstatt Blog und Stories
Wasili am 23.12.06 21:13

Man, man, hab ich heute Probleme :D
Ich will ein ganzes Verzeichnis abfahren. Dabei soll jedes Subverzeichnis geöffnet werden, darin gesucht werden, etc... Nebenbei wird später jeder mp3-Datei die ID3-Tags entnommen, in einer Datenbank notiert und die Datei wird entsprechend verschoben und umbenannt.
Mein Problem aber: Meine Funktion liesst sich in genau 2 Subverzeichnisse. Und ich hab keine Ahnung, warum.

function id3rn_scan($dir) {
print $dir."\r\n";
$handler = opendir($dir);
// Jede Datei auslesen
while (false !== ($file = readdir($handler))) {
if($file == '.' OR $file == '..' OR $file === 'System Volume Information' OR $file === 'RECYCLER') {
// Do nothing with them
}
elseif(is_dir($file)) {

id3rn_scan($dir.'/'.$file);
print "\r\n";
}
elseif(substr($file, -4) == '.mp3') {
// id3rn_move($file);
}
}
}


Ausgabe (Auszug):
D:/Lacrimosa

D:/Metroid Prime
D:/Metroid Prime/Metroid Prime


D:/Moonspell

D:/My Dying Bride


Es sind auch keine Gemeinsamkeiten erkennbar, welche Subverzeichnisse er nun ausliest, und welche nicht... =/

EDIT: Ha! Doch, eine Gemeinsamkeit gibts. Und zwar heissen die ausgelesenen subdirs gleich wie das Eltern-Verzeichnis...

netcup.de Warum gibt es hier Werbung?
Franky Franky am 23.12.06 21:25

1. warum benutzt du in z6 ===?
2. und überhaupt dieses mit elseif usw...mach das doch einfach mit continue?

ich meine ich hatte auch mal das problem...versuch da mal nach dem erfolgreichem ausgeben des verzeichnisses ein return true;

Wasili am 23.12.06 21:53

1) == könnte auch andere Treffer treffen... Ich dachte mal, irgendwo so n' Beispiel gesehen zu haben, naja, egal.

2) Kommt ja aufs gleiche raus, oder? Ich mags lieber so. Oder gibts mit continue Vorteile?

@return true; ka wo du meinst, aber egal, denn ich habs! Und schäme mich grad richtig.... Autsch.
Ich hab nur den Verzeichnisnamen geprüft... Das Script selbst war immernoch im gleichen Verzeichnis - D:/. Und da gibts halt ein Verzeichnis mit Namen "Eisbrecher". Darin die Alben "Eisbrecher" und "Antikörper". Naja.. Das Album Eisbrecher war schlussendlich ein Ordner, weil das Elternverzeichnis eines war. "Antikörper" war keines... weil es das auf D:/ nicht gab :O

function id3rn_scan($dir, $level = 0) {
print "\r\n".str_repeat("\t", $level)."=> Level $level\r\n";
print str_repeat("\t", $level).$dir."\r\n";

$handler = opendir($dir);
// Jede Datei auslesen
while (false !== ($file = readdir($handler))) {
if($file == '.' OR $file == '..' OR $file == 'System Volume Information' OR $file == 'RECYCLER') {
// Do nothing with them
continue 1;
}
elseif(is_dir($dir.'/'.$file)) {
id3rn_scan($dir.'/'.$file, $level+1);
}
elseif(substr($file, -4) == '.mp3') {
// id3rn_move($file);
}
}

closedir($handler);
print "\r\n";
}

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt