bug v Utils\Finder pri mazany suborou

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
David Ďurika
Člen | 328
+
0
-

Zdravim, nasledovny kod my skonci chybovou hlaskou

<?php
	foreach (Finder::findDirectories('*')->from($dir) as $file) {
		if((count(scandir($file->getPathName())) == 2)) {
			rmdir($file->getPathName());
		}
	}
?>

hlaska: RecursiveDirectoryIterator::__construct(/www/taskee/public/../temp/qq/asdf): failed to open dir: No such file or directory
tuto hlasku hodi na riadok kde je foreach (a nie tam kde je rmdir) a ta zlozka tam EXISTOVALA a aj ju ZMAZE, len ako keby ten foreach k tomu pristupoval nejak opakovane…

tento kod uz funguje OK

<?php
		$delete = array();
		foreach (Finder::findDirectories('*')->from($dir) as $file) {
			if((count(scandir($file->getPathName())) == 2)) {
				$delete[] = $file->getPathName();
			}
		}

		foreach ($delete as $value) {
			rmdir($value);
		}
?>
Filip Procházka
Moderator | 4668
+
0
-

Imho tam žádný bug není, jenom to používáš špatně.

foreach (Nette\Utils\Finder::find('*')->from($dir)->childFirst() as $file) {
	if ($file->isDir()) {
		rmdir($file->getRealpath());
	} else {
		unlink($file->getRealpath());
	}
}