Löschen __MACOSX Ordner mit PHP?
-
21-09-2019 - |
Frage
Hat jemand Erfahrung mit dem Löschen des __MACOSX
Ordner mit PHP hatte?
Der Ordner erzeugt wurde, nachdem ich ein Archiv entpackt, aber ich kann es nicht lösche erscheinen.
Die is_dir
Funktion false zurück auf die Datei, die rekursive Lösch Skripte machen scheitern (weil im Archiv ist die ‚Temp‘ Dateien), so wird das Verzeichnis nicht leer ist.
Ich bin mit dem eingebauten in ZipArchive Klasse (extractTo-Methode) in PHP5.
Das rmdir Skript Ich verwende ist, den ich auf php.net gefunden:
<?php
// ensure $dir ends with a slash
function delTree($dir) {
$files = glob( $dir . '*', GLOB_MARK );
foreach( $files as $file ){
if( substr( $file, -1 ) == '/' )
delTree( $file );
else
unlink( $file );
}
rmdir( $dir );
}
?>
Lösung
fand ich eine verbesserte Version der Funktion von http://www.php.net/rmdir, die PHP5 erfordert.
- Diese Funktion verwendet
DIRECTORY_SEPARATOR
statt/
. PHP definiertDIRECTORY_SEPARATOR
als die richtigen Zeichen für das Betriebssystem O ( '/' oder '\'). - Das Verzeichnis Standort muss nicht mit einem Schrägstrich zu Ende.
- Die Funktion gibt
true
oderfalse
nach Abschluss.
function deleteDirectory($dir) { if (!file_exists($dir)) return true; if (!is_dir($dir)) return unlink($dir); foreach (scandir($dir) as $item) { if ($item == '.' || $item == '..') continue; if (!deleteDirectory($dir.DIRECTORY_SEPARATOR.$item)) return false; } return rmdir($dir); }
Andere Tipps
Welche OS und Version verwenden Sie?
Sie müssen die Pfade in das Verzeichnis und Dateien korrigieren.
// ensure $dir ends with a slash
function delTree($dir) {
foreach( $files as $file ){
if( substr( $file, -1 ) == '/' )
delTree( $dir.$file );
else
unlink( $dir.$file );
}
rmdir( $dir );
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow