0

私のコード:

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 ファイルを削除することはできません。

4

1 に答える 1

0

ディレクトリに隠しファイルがある可能性があります

WiNDOWS または Linux のどのプラットフォームを使用していますか。

ドット「.」で始まるファイルだけを除外したい場合は、

これを試して:

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

上記の関数はファイルのみを返します。chich は で始まっていません。

しかし、Windows では隠しファイルの動作が異なります。

于 2013-01-13T09:18:34.547 に答える