ファイルアップローダ+複数のディレクトリを削除するシステムについて
以下のようなフォルダ構成で、複数のディレクトリを削除するシステムを構築しよと
しましたが、1ディレクトリのみしか削除できませんでした。
20090601 - xxx1.txt
yyy1.txt
zzz1.txt
のフォルダ20090601と、ファイルxxx1.txt,yyy1.txt,zzz1.txt
のみしか削除できませんでした。理想は、すべてのディレクトリ、ファイルを削除しようと、試行錯誤
しましたが、なかなかうまくいきません。
わかる人がいたら、ご教授のほどよろしくお願いします。
============フォルダ構成====================================
20090601 - xxx1.txt
yyy1.txt
zzz1.txt
20090602 - xxx2.txt
yyy2.txt
zzz2.txt
20090603 - xxx3.txt
yyy3.txt
zzz3.txt
20090604 - xxx4.txt
yyy4.txt
zzz4.txt
$_WK_dir_name[1] = "20090601"
$_WK_dir_name[2] = "20090602"
$_WK_dir_name[3] = "20090603"
$_WK_dir_name[4] = "20090604"
============プログラム======================================
// ファイルアップロード処理
(省略)
// ディレクトリ数のカウント処理
(省略)
// ディレクトリとディレクトリの中身を削除
for ($i = 1; $i < 4; $i++) {
// 削除するディレクトリパスを設定
$_dir_path = './' . $_WK_dir_name[$i] . '/';
printf("★1");
// ディレクトリ・ハンドルをオープン
$res_file = opendir( $_dir_path );
printf("★2");
// ディレクトリ内のファイル名を1つずつを取得
while( $file_name = readdir( $res_file ) ){
// ファイルかどうか判定する
if (is_file($_dir_path . $file_name)) {
unlink($_dir_path . $file_name);
}
}
printf("★3");
closedir( $res_file );
printf("★4");
rewinddir( $res_file );
printf("★5");
// ディレクトリの中身が空になったところで、ディレクトリを削除する。
rmdir($_WK_dir_name[$i]);
printf("★6");
}
============================================================
お礼
やはりセキュリティの関係で無理なのですね。 ありがとうございます。