2013-01-13 58 views
0

我的代碼:SCANDIR顯示錯誤的結果

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

輸出:

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 

text_filesdesktop__dup.ini甚至不存在。

C:\Users\Steve\Desktop\Files>del text_filesdesktop__dup.ini 
Could Not Find C:\Users\Steve\Desktop\Files\text_filesdesktop__dup.ini 

我一直在使用scandir(),刪除文件並重新創建它,等等,都無濟於事嘗試。我根本無法讓那個.ini文件消失。

+0

PHP代碼看起來太簡單了,不能包含錯誤。你確定你正在掃描正確的目錄嗎? 'realpath($ file)'顯示什麼?如果您試圖獲取關於該文件的更多信息('filesize' /'file_get_contents'),您會看到什麼? – DCoder

+0

我做了一個腳本將文件移動到各自的文件夾..即.txt去text_files .mp4 .mpg等等去video_files和顯然desktop.ini移動,因爲重命名()不排除系統/隱藏文件的一些原因.. – Steve

回答

0

可能是你有隱藏的文件在目錄

什麼平臺是您的使用,Windows或Linux,

如果你只是想排除以點開頭的文件,「」,

試試這個:

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

上述功能僅returs文件,chich沒有開始。

但在Windows隱藏文件工作不同,我不知道如何玩它。