gpt4 book ai didi

delphi - 即使仅与 faDirectory 一起使用,FindNext 也会返回文件名

转载 作者:行者123 更新时间:2023-12-03 15:19:40 25 4
gpt4 key购买 nike

我正在尝试列出给定目录中的所有目录。我有这个代码:

var
srec: TSearchRec;

begin
// folder is some absolute path of a folder
if FindFirst(folder + PathDelim + '*', faDirectory, srec) = 0 then
try
repeat
if (srec.Name <> '.') and (srec.Name <> '..') then
ShowMessage(srec.Name);
until FindNext(srec) <> 0;
finally
FindClose(srec);
end;

但由于某种原因,我收到有关文件名而不是目录的消息。我认为使用 faDirectory 将使 FindFirst 和 family 仅返回目录名称。我究竟做错了什么?如果我把它改成

if FindFirst(folder, faDirectory, srec) = 0 then

然后它只显示文件夹的名称,但不显示为绝对路径(相对于文件夹+'/..')并随后退出。

我意识到我可以通过确保 (srec.Attr and faDirectory) = faDirectory 来检查它是否是一个目录,但我觉得这是在以一种迂回的方式做事,应该有一个正确的做法。

最佳答案

如果您使用的是delphi xe,请检查TDirectory.GetDirectories功能。

SysUtils.FindFirst文档可以解决您的问题。

function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer;

The Attr parameter specifies the special files to include in addition to all normal files. Choose from these file attribute constants when specifying the Attr parameter.

关于delphi - 即使仅与 faDirectory 一起使用,FindNext 也会返回文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8676970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com