質問

を削除した経験のある人はいますか __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 );
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top