まず、これらを邪魔にならないようにしましょう。
- ディレクトリに開いているハンドルはありません。
- ディレクトリにファイルがありません。
chmod
権限を0777に設定しても、エラーは防止されません。- ディレクトリ名は正しいです。
それでは、これが私の問題です。 rmdir()
ディレクトリを削除しようとすると、次のエラーがスローされます。
rmdir(098f6bcd4621d373cade4e832627b4f6)[function.rmdir]:124行目のpath \ to\administrate.phpでアクセスが拒否されました
098f6bcd4621d373cade4e832627b4f6はディレクトリの名前です。
スクリプトの関連部分は次のとおりです。
if(is_dir($userhash)) :
foreach (new DirectoryIterator($userhash) as $fileInfo) {
$fileName = $fileInfo->getFilename();
if($fileInfo->isDot()) continue;
if(!rename($userhash.'/'.$fileName , 'trashcan/'.$username.'/'.$fileName)) {
echo '<p class="error">Could not move '.$fileName.'</p>';
$err = 1;
}
}
else :
echo '<p class="error">Unable to delete files! error: 67</p>';
$err = 1;
endif;
//JUST TO BE SURE
chmod('./',0777);
chmod($userhash,0777);
// RMDIR ONCE THE DIR IS EMPTY.
if(rmdir($userhash))
echo '<p class="success">Deleted the user directory. The files are in the trash.</p>';
else {
echo '<p class="error">Could not remove the user directory. Error: 656</p>';
$err = 1;
}
アップデート
'jake'
同じディレクトリにディレクトリを手動で作成しました。私はやったrmdir('jake');
、それはうまくいった。'098f6bcd4621d373cade4e832627b4f6'
ここで、同じディレクトリにディレクトリを手動で作成しました。私がやったrmdir('098f6bcd4621d373cade4e832627b4f6');
、それはエラーだった!
アップデート2
これは、見た目とは異なり、奇妙なrmdir()
バグのように見え始めています。これが私が作成し、rmdir
;で削除しようとしたディレクトリ名です。
098f6bcd4621d373cade4e832627b4f6 | didn't work (quintuple checked)
098f6bcd4621d373cade4e832627b4f7 | worked
098f6bcd4621d373cade4e832627b4f | worked
098f6bcd4621d373cade4e832627b4f66 | worked