2016-05-18 3 views
0

私はこのフォルダ内のサブディレクトリを持たず、フォルダとその内容を削除します。フォルダとファイルを効率的に削除する

$uploaddir = "DRIVE_LETTER/path/to/folder"; 
    $dir_contents = scandir($uploaddir); 

    if(is_dir($uploaddir)) { 
    foreach($dir_contents as $content) { 
    unlink($uploaddir.'/'.$content); 
    rmdir($uploaddir); 
    } 
} 

私は警告が表示されたスクリプトを実行すると、次のように:

Warning: unlink(D:/path/2016-05-18/08/.) [function.unlink]: Permission denied in C:\htdocs\test.php on line 32 

Warning: rmdir(D:/path/2016-05-18/08) [function.rmdir]: Directory not empty in C:\htdocs\test.php on line 33 

Warning: unlink(D:/path/2016-05-18/08/..) [function.unlink]: Permission denied in C:\htdocs\test.php on line 32 

Warning: rmdir(D:/path/2016-05-18/08) [function.rmdir]: Directory not empty in C:\htdocs\test.php on line 33 

は代わりに警告、ディレクトリとファイルは削除されますが、フォルダやコンテンツを削除するためのより効率的な方法は存在していますか?

+0

あなたが他のドライブにアクセスすることはできませんが、あなたのサーバーファイルの代わりに – Thamilan

+0

警告が、私はのDirectoryIteratorを使用するための別のドライブ –

答えて

0

は、それを試してみてください -

$uploaddir = "DRIVE_LETTER/path/to/folder"; 
    $dir_contents = scandir($uploaddir); 
    $filename = 'Filename.jpg'; // Your file name 
    if(is_dir($uploaddir)) { 
    foreach($dir_contents as $content) { 
    unlink("DRIVE_LETTER/path/to/folder".$filename); 
    rmdir($uploaddir); 
    } 
} 
1

あなたはunlinkファイルとフォルダにあなたを停止し、ファイルのアクセス許可の問題を抱えているchmodを使用してファイルのアクセス許可を変更しようと、これはあるファイルとフォルダ

function chmod_r($path) { 
    $dir = new DirectoryIterator($path); 
    foreach ($dir as $item) { 
    chmod($item->getPathname(), 0644); 
    if ($item->isDir() && !$item->isDot()) { 
     chmod_r($item->getPathname()); 
    } 
    } 
    chmod($path, 0644); 
} 

chmod_r('files'); 
$files = glob('files/*'); // get all file names 
foreach($files as $file){ // iterate files 
    if(is_file($file)) 
    unlink($file); // delete file 
} 

rmdir("files"); 

を削除します削除するファイルのパーミッションを変更する例

この中には、phpスクリプトのあるフォルダとファイル名のフォルダがあり、削除権限のないファイルが含まれています。この最初のファイルとフォルダのパーミッションを0644に変更します。//オーナーのために読み書きし、他の人のために読み込んでからファイルを削除します。

+0

「プラス1」にあるフォルダを削除することができます() – slick

0

試してみてください。

function rrmdir($dir) { 
     foreach(glob($dir . '/*') as $file) { 
     if(is_dir($file)) rrmdir($file); else unlink($file); 
     } rmdir($dir); 
    } 
    rrmdir("E:/testing") 
関連する問題