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

如果你使用免费的 pascal,afaik Sysutils 有“directoryexists”

于 2010-12-27T18:59:25.660 回答
0

尝试以下

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

抱歉,我的 Pascal 有点生锈了

基本上 FindFirst/FindNext 返回的对象包含一个 ATTR 属性,该属性指示它是文件的类型。

此外,在循环结束时,请务必添加 FindClose() 调用以释放内存

FindClose(F)

文件属性常量

  • faDirectory - 是目录
  • faReadOnly-只读文件
  • faArchive-归档位
  • faHidden-文件被隐藏
  • faVolumeId-File 是卷 ID
  • faSysFile-系统文件
于 2010-12-25T13:23:12.303 回答