在查找文件时,在子文件夹中搜索通常是有用且必要的。在这里,您将看到如何使用Delphi的强大功能创建一个简单但功能强大的查找所有匹配文件项目。
下面的项目不仅允许您通过子文件夹搜索文件,还允许您轻松确定文件属性,如名称、大小、修改日期等,以便您可以查看何时从Windows资源管理器调用“文件属性”对话框。特别是,它演示了如何递归地搜索子文件夹并组合与特定文件掩码匹配的文件列表。递归技术被定义为在代码的中间调用它自己的例程。
为了理解项目中的代码,我们必须熟悉SysUtils单元中定义的下三个方法:FindFirst、FindNext和FindClose。
FindFirst是使用Windows API调用启动详细文件搜索过程的初始化调用。搜索将查找与路径说明符匹配的文件。路径通常包括通配符(*和?)。Attr参数包含用于控制搜索的文件属性组合。Attr中识别的文件属性常量有:faAnyFile(任意文件)、faDirectory(目录)、faradonly(只读文件)、faHidden(隐藏文件)、faArchive(归档文件)、faSysFile(系统文件)和faVolumeID(卷ID文件)。
如果FindFirst找到一个或多个匹配文件,它将返回0(或失败的错误代码,通常为18),并用第一个匹配文件的信息填充Rec。为了继续搜索,我们必须使用相同的TSearcRec记录并将其传递给FindNext函数。搜索完成后,必须调用FindClose过程以释放内部Windows资源。TsarchRec是定义为以下内容的记录:
找到第一个文件后,将填充Rec参数,项目可以使用以下字段(值)。。Attr,文件的属性如上所述。。Name包含一个表示文件名的字符串,不包含路径信息。找到的文件的大小(字节)。。时间将文件的修改日期和时间存储为文件日期。。FindData包含其他信息,如文件创建时间、上次访问时间以及长文件名和短文件名。
FindNext函数是详细文件搜索过程的第二步。您必须传递调用FindFirst创建的相同搜索记录(Rec)。FindNext的返回值为零表示成功,或为错误代码表示任何错误。
此过程是FindFirst/FindNext所需的终止调用。
这是在运行时显示的“搜索文件”项目。表单上最重要的组件是两个编辑框、一个列表框、一个复选框和一个按钮。编辑框用于指定要搜索的路径和文件掩码。找到的文件将显示在列表框中,如果选中该复选框,则会扫描所有子文件夹以查找匹配的文件。
下面是项目中的小代码片段,只是为了说明使用Delphi搜索文件尽可能简单:
...比聚光灯更强大。 您可以自动管理文件、文件夹和文件存档。设置cron作业将自动处理此问题。 它给你更多的权力和控制你的系统。 ...
如果您为工作设置了大量文件夹,并且在工作日需要在所有文件夹中使用相同的脚本文件,那么除了大量复制和粘贴之外,最简单的方法是什么?今天的超级用户问答帖子为沮丧的读者提供了一些有用的答案和建议。 今天的问...
搜索单一的文件或文件类型是一回事,但是当您需要同时搜索多个文件类型时,您该怎么办?今天的超级用户问答来拯救一个读者的文件搜索困境。 今天的问答环节是由SuperUser提供的,SuperUser是Stack Exchange的一个分支,是一个...
...组。 问题 超级用户读者Dan Dascalescu很好奇为什么所有的搜索都不是基于表的: I’ve just discovered UltraSearch and was blown away by its file and folder search speed. It’s instantaneous. And doesn’t use any indexing service. It simply uses the NTFS Master File Tab...
从表面上看,操作系统的文件系统可能看起来像一大堆文件夹,但肯定还有更多的文件夹。请继续阅读,我们将调查文件系统表面下的内容。 今天的问答环节是由SuperUser提供的,SuperUser是Stack Exchange的一个分支,是一个由社区...
...供了一个非常好的应用程序,让您可以轻松地共享文件、文件夹和文档。 安全发送 安全发送允许任何人安全地发送大文件。发送文件非常简单,只需输入您要发送文件的电子邮件地址,附加您要发送的文件,然后单击“发送...
...Facebook数据,以便在墙上搜索,将大量应用程序打包到iOS文件夹中,并密切关注可以访问你私人数据的web应用程序。 轻松下载所有facebook数据 Michelle写了一个简单的方法来搜索你的Facebook墙: Even with the advent of the Facebook Timeline,...
...章将向您展示如何使用此功能,以及如何访问“发送到”文件夹,以便您可以向菜单中添加快捷方式,而无需在右键单击时按Shift键。 愚蠢的怪人把戏:Windows7“发送到”菜单上的秘密项目 如何在Windows7中打开“开始”菜单文件...
...按钮更改为关机/睡眠/休眠 在Windows7中打开“开始”菜单文件夹 Do you edit your Start menu every time you install a program to keep it neat and tidy? In Windows XP, all you had to do to access the Start menu folder was right-click on the Start button. However, that is not the c...
...rRename”。从这里,PowerRename很容易理解。在顶部字段(“搜索”)中键入任何要更改的文本,然后在底部字段(“替换为”)中键入任何要更改的文本-正如您刚才在上面的动画中看到的那样。我喜欢PowerRename的地方在于,您可以...