2013-01-13 2 views
0

내 코드 :위해 scandir 보여주는 잘못된 결과

if ($d = opendir('.')) { 
     while (($file = readdir($d)) !== false) { 
      if ($file != "." && $file != ".."){ 
       echo "filename: $file \n"; 
       $files[]=$file; 
      } 
     } 
    closedir($d); 
} 

출력 : text_filesdesktop__dup.ini 반면

filename: audio_files 
filename: backup_files 
filename: compressed_files 
filename: database_files 
filename: data_files 
filename: developer_files 
filename: disk_image_files 
filename: executable_files 
filename: font_files 
filename: genstats.php 
filename: raster_image_files 
filename: spreadsheet_files 
filename: text_files 
filename: text_filesdesktop__dup.ini 
filename: video_files 
filename: web_files 

도 존재하지 않습니다.

나는 아무 소용 등 파일을 삭제하고 다시, scandir()를 사용하여 시도

C:\Users\Steve\Desktop\Files>del text_filesdesktop__dup.ini 
Could Not Find C:\Users\Steve\Desktop\Files\text_filesdesktop__dup.ini 
. 나는 단순히 .ini 파일을 삭제할 수 없습니다.

+0

PHP 코드가 너무 간단해서 버그를 포함 할 수 없습니다. 올바른 디렉토리를 스캔하고 있습니까? 'realpath ($ file)'는 무엇을 보여줍니까? 그 파일에 대한 더 많은 정보를 얻으려고하면 무엇을 보게 될까요 ('filesize' /'file_get_contents')? – DCoder

+0

파일을 각자의 폴더로 옮기는 스크립트를 만들었습니다. 예를 들어, .txt가 text_files .mp4 .mpg로 이동하고 video_files로 이동하고 rename()이 시스템/숨김 파일을 제외하지 않았기 때문에 desktop.ini가 이동되었습니다. 몇몇 이유.. – Steve

답변

0

방금 ​​점으로 시작하는 파일을 제외하려면 어떤 플랫폼 것은 당신이 Windows 또는 Linux,

를 사용하는

당신이 당신의 디렉토리에 숨겨진 파일을 겪고있는 수 있습니다 ".",

이 시도 :

$files = readdir('/path/to/folder'); 
$files = array_filter($files, create_function('$a','return ($a[0]!=".");')); 

위의 기능은 파일을 returs, chich으로 시작되지 않습니다.

하지만 Windows의 숨김 파일은 다르게 작동하며, 그걸 가지고 놀 방법을 모른다.