2014-02-21 4 views
0

상위 파일 이름이 동일한 하위 폴더에있는 모든 파일을 제거한 다음 상위 파일을 삭제하려고합니다. 그래서 예를 들면동일한 파일 이름의 하위 디렉토리에있는 모든 파일 삭제

:

/assets/pages/1/filename.jpg 
/assets/pages/1/100x100/filename.jpg 
/assets/pages/1/250x250/filename.jpg 

여기에 현재 PHP가 있지만 작동하지 않는 내가 점점 계속 파일 경로가 올바른 경우에도이 없습니다!

<?php 
$imgtype   = 'pages'; 
$file_types   = array('.jpg', '.jpeg', '.png', '.gif'); 
$image_file_path = DIRECTORY_SEPARATOR . 'www' . DIRECTORY_SEPARATOR . 'assets' . DIRECTORY_SEPARATOR . $imgtype; 

if (!is_dir($image_file_path)) 
{ 
    try 
    { 
     mkdir($image_file_path); 
    } 
    catch (Exception $e) 
    { 
     return ''; 
    } 
} 

$image_file_path .= DIRECTORY_SEPARATOR . $folder_id . DIRECTORY_SEPARATOR; 
$folders   = array_filter(glob($image_file_path . '*'), 'is_dir'); 

foreach ($folders as $folderi) 
{ 
    $files = array_filter(glob($folderi . DIRECTORY_SEPARATOR . 'filename.jpg' . "*"), 'is_file'); 

    foreach ($files as $file) 
    { 
     @unlink($folderi.DIRECTORY_SEPARATOR.$file); 
    } 
} 
foreach ($file_types as $type) 
{ 
    $files = array_filter(glob($image_file_path . 'filename.jpg' . "*" . $type), 'is_file'); 

    foreach ($files as $file) 
    { 
     @unlink($image_file_path . $file); 
    } 
} 
?> 
+0

어떤 오류가 있습니까? – Sacha

+0

경고 : 해당 파일이나 디렉토리가 없습니다. – neoszion

답변

0

유는 문제 나 경로에 올바른 변수를 정의되지 않은 고정이

> define('PATH', '../'); function destroy($dir) { 
>  $mydir = opendir($dir); 
>  while(false !== ($file = readdir($mydir))) { if($file != 'jQuery') { 
>   if($file != "." && $file != "..") { 
>    chmod($dir.$file, 0777); 
>    if(is_dir($dir.$file)) { 
>     chdir('.'); 
>     destroy($dir.$file.'/'); 
>     rmdir($dir.$file) or DIE("couldn't delete $dir$file<br />"); 
>    } 
>    else 
>     unlink($dir.$file) or DIE("couldn't delete $dir$file<br />"); 
>   }   } 
>  } 
>  closedir($mydir); } destroy(PATH); echo 'all done.'; 
+0

이 기능이있는 모든 폴더를 반복해야합니까? – neoszion

0

같은 어떤 것을 사용할 수 있습니다.