0

特定のディレクトリに含まれるファイルを一覧表示するプログラムを作成したい。このディレクトリにあるフォルダではなく、ファイルとファイルのみを一覧表示したいと思います。Pascalでこれを行うにはどうすればよいですか?PHPの場合、「isDir」という名前の関数があります。これは、指定されたパラメーターがディレクトリ(フォルダー)の場合にtrueを返します。この関数を使用すると、使用している「パス」がファイルなのかフォルダなのかを確認できます。

現在、FindFirstおよびFindNextプロシージャを使用して、ディレクトリ内のすべてのファイル/フォルダを取得しています。

program mine;
uses dos;

var F: SearchRec
begin
    readln(dir);
    FindFirst('dir+'\.*.',anyFile,F);
    while DosError=0 do begin
        writeln(F.Name);
        FindNext(F);
    end;
end.
4

2 に答える 2

0

次を試してください

while DosError=0 do begin
        if ((F.attr and faDirectory) <> faDirectory)
         then  writeln(F.Name);
        FindNext(F);
    end;

申し訳ありませんが、私のパスカルは少し錆びています

基本的に、FindFirst / FindNextによって返されるオブジェクトには、ファイルのタイプを示すATTRプロパティが含まれています。

また、ループの最後に、必ずFindClose()呼び出しを追加して、メモリを解放してください。

FindClose(F)

ファイル属性定数

  • faDirectory-ディレクトリです
  • faReadOnly-読み取り専用ファイル
  • faArchive-アーカイブビット
  • faHidden-ファイルは非表示です
  • faVolumeId-ファイルはボリュームIDです
  • faSysFile-システムファイル
于 2010-12-25T13:23:12.303 に答える
0

無料のパスカルを使用する場合、afaikSysutilsには「directoryexists」があります

于 2010-12-27T18:59:25.660 に答える