PHP で __MACOSX フォルダーを削除しますか?
-
21-09-2019 - |
質問
を削除した経験のある人はいますか __MACOSX
PHPでフォルダ?
アーカイブを解凍した後にフォルダーが生成されましたが、削除できないようです。
の is_dir
関数はファイルに対して false を返し、再帰的な削除スクリプトが失敗するため (アーカイブ内に「一時」ファイルがあるため)、ディレクトリは空になりません。
PHP5 の組み込み ZipArchive クラス (extractTo メソッド) を使用しています。
私が使用している rmdir スクリプトは、php.net で見つけたものです。
<?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 );
}
?>
解決
の機能の改良版を見つけました http://www.php.net/rmdir それにはPHP5が必要です。
- この関数は使用します
DIRECTORY_SEPARATOR
の代わりに/
. 。PHP の定義DIRECTORY_SEPARATOR
実行中の OS に適切な文字 (「/」または「\」) として使用します。 - ディレクトリの場所はスラッシュで終わる必要はありません。
- 関数は戻ります
true
またはfalse
完了時に。
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); }
他のヒント
どのOSとバージョン、使用していますか?
<時間>あなたは、ディレクトリやファイルへのパスを修正する必要があります。
// 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 );
}
所属していません StackOverflow