teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

ソース修正

2018/04/20 05:23

投稿

cofee
cofee

スコア44

title CHANGED
File without changes
body CHANGED
@@ -1,48 +1,48 @@
1
1
  お世話になっております。
2
2
 
3
- 指定したディレクトリ内を調べて、その中に存在するフォルダが空だったらフォルダを削除する処理を行いたいです。
3
+ プログラムから指定したフォルダを削除する処理を行いたいです。
4
- 以下のように試したのですが、notemptyとエラーが出てしまいます。
5
4
 
6
- 日付毎にフォルダが分かれており、そ日付の中に空のフォルダとファイルがあり、
5
+ フォームで人毎のフォルダをアップロードして
7
- その空のフォルダをプログラ削除したいと考えています。
6
+ そのフォルダの中にあるファイルリネーする処理です。
8
7
 
8
+ 人毎のフォルダの中に1,2,3とファイル名が存在し、
9
+ そのファイルをリネームして日付毎のフォルダの直下に置き、人毎の中のファイルをunlinkしています。
10
+ rmdir(str_replace("\", "\\", $filepath1));
11
+ するときには人毎のフォルダの中身は空のはずなのに人毎のフォルダが削除できません。
12
+
13
+ エラー内容は「notempty」と出てしまいます。
14
+
9
15
  よろしくお願いいたします。
10
16
 
11
17
  ```php
12
- $date = date("Ymd");
13
- $filepath = "//xxx.xxx.x.xx/test/".$date."/";
14
- $this->remove_dir($filepath);
15
- ```
16
- ```php
17
- private function remove_dir($dir_name) {
18
18
 
19
+ $filepath1 = '\コンピュータ名\共有フォルダ名\日付フォルダ\人フォルダ';
19
- if (!is_dir($dir_name)) {
20
+ $filepath2 = '\コンピュータ名\共有フォルダ名\日付フォルダ';
20
- return false;
21
- }
22
21
 
23
- if (!is_dir($dir_name)) {
22
+ foreach($file as $f){
24
- return false;
23
+ $filename = $f->getClientOriginalName();
25
- }
26
24
 
27
- try {
28
- if ($dh = opendir($dir_name)) {
25
+ switch($filename){
29
- while (($file = readdir($dh)) !== false) {
26
+ case '1.pdf':
30
- if ($file == "." || $file == "..") {
27
+ $sample1 = "sampl1.pdf";
31
- continue;
32
- }
33
- if (is_dir($dir_name . "/" . $file)) {
34
- $this->remove_dir($dir_name . "/" . $file);
28
+ copy($f, $filepath2."\".mb_convert_encoding($sample1,'SJIS-win','UTF-8'));
35
- }else {
29
+ $f->move('./pdf/',mb_convert_encoding($sample1,'SJIS-win','UTF-8'));
36
- unlink($dir_name . "/" . $file);
30
+ unlink($filepath1."\".'1.pdf');
37
- }
31
+ break;
32
+ case '2.pdf':
33
+ $sample2 = "sampl2.pdf";
34
+ copy($f, $filepath2."\".mb_convert_encoding($sample2,'SJIS-win','UTF-8'));
35
+ $f->move('./pdf/',mb_convert_encoding($sample2,'SJIS-win','UTF-8'));
36
+ unlink($filepath1."\".'2.pdf');
38
- }
37
+ break;
38
+ case '3.pdf':
39
+ $sample3 = "sampl3.pdf";
40
+ copy($f, $filepath2."\".mb_convert_encoding($sample3,'SJIS-win','UTF-8'));
41
+ $f->move('./pdf/',mb_convert_encoding($sample3,'SJIS-win','UTF-8'));
42
+ unlink($filepath1."\".'3.pdf');
43
+ break;
39
44
  }
40
- rmdir($dir_name);
41
- } catch (\Exception $ex) {
42
- \logger($ex);
43
- $error_massage = mb_convert_encoding('フォルダ削除失敗。対象:', 'CP932', 'UTF-8');
44
- throw new \Exception($error_massage. $dir_name);
45
45
  }
46
+
46
- closedir($dh);
47
+ rmdir(str_replace("\", "\\", $filepath1));
47
- }
48
48
  ```