`

子目录级的文件查找

阅读更多
实现方法:
1. 获取当前目录下的所有下一级子目录。
2. 存入字符串列表中(Tstrings)。
其中,用到了几个API函数。
FindFirst 是找出指定目录下第一个文件或目录。
FindNext 一般和FindFirst配合使用,用来找出下一个文件或目录。
FindClose 用来关闭查询。
(以上函数Delphi在线帮助中有详尽解释,在此不赘述);
3. 用FileExists函数查找当前目录,
4. 寻找是否有满足条件的文件存在,
5. 依次使各个子目录成为当前目录,
6. 递归调用本函数,
7. 释放资源,
8. 返回查询结果。  
 
代码如下:
1. 从搜索记录中判断是否是子目录。
 
function IsValidDir(SearchRec:TSearchRec):Boolean;
begin
if (SearchRec.Attr=16) and
(SearchRec.Name<>'.') and
(SearchRec.Name<>'..') then
Result:=True
else
Result:=False;
end;
2. 这是查询主体函数。
参数介绍:

Mainpath: 指定的查询目录。
Filename: 欲查询的文件。
Foundresult: 返回的含完整路径的匹配文件(可能有多个)。

如果有匹配文件,函数返回True,否则,返回False;  

function SearchFile(mainpath:string; filename:string;
var foundresult:TStrings):Boolean;
var i:integer;
Found:Boolean;
subdir1:TStrings;
searchRec:TsearchRec;
begin
found:=false;
if Trim(filename)<>'' then
begin
subdir1:=TStringList.Create;//字符串列表必须动态生成
//找出所有下级子目录。
if (FindFirst(mainpath+'*.*', faDirectory, SearchRec)=0) then
begin
if IsValidDir(SearchRec) then
subdir1.Add(SearchRec.Name);
while (FindNext(SearchRec) = 0) do
begin
if IsValidDir(SearchRec) then
subdir1.Add(SearchRec.Name);
end;
end;
FindClose(SearchRec);
//查找当前目录。
if FileExists(mainpath+filename) then
begin
found:=true;
foundresult.Add(mainpath+filename);
end;
//这是递归部分,查找各子目录。
for i:=0 to subdir1.Count-1 do
found:=Searchfile(mainpath+subdir1.Strings[i]+
'\',Filename,foundresult)or found;
//资源释放并返回结果。
subdir1.Free;
end;
result:=found;
end;
分享到:
评论

相关推荐

    操作系统课程设计 天津科技大学 二级文件系统设计 答案 完整代码 Liunx

    主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。 用户创建的文件,可以编号存储于磁盘上。如:file0,file1,file2…并以编号作为物理地址,在目录中进行登记。 2. 主要数据结构和部分代码

    .Iinux系统的二级文件系统(QT实现了简单界面,包含原始控制台源码)操作 系统- Linux

    包含qt完整的工程以及原始的一份控制台...主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。 (2)用户创建的文件,可以编号存储于磁盘上。如file0,file1,file2...并以编号作为物理地址,中进行登记。

    操作系统实验报告(文件管理)

    三、实验内容 为Unix/Linux 系统设计一个简单的二级文件系统。要求做到以下几点: (1) 可以实现下列几条命令: login 用户登录 ...主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。

    操作系统实验···文件系统

    为DOS系统设计一个简单的二级文件系统 可以实现下列几条命令 LOGIN 用户登陆 DIR 列文件目录 CREATE 创建文件 DELETE 删除文件 OPEN 打开文件 CLOSE 关闭文件 READ 读文件 WRITE 写文件 ①首先应确定文件...

    linux系统的二级文件系统(QT实现了简单界面,包含原始控制台源码)

    包含qt完整的工程目录以及原始的一...主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。 (2)用户创建的文件,可以编号存储于磁盘上。如file0,file1,file2...并以编号作为物理地址,在目录中进行登记。

    I inux 系统的二级文件系统(QT实现了简单界面,包含原始控制台源码)操作系统- Linux

    包含qt完整的工程目录以及原始的一...主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。 (2)用户创建的文件,可以编号存储于磁盘上。如file0,file1,file2...并以编号作为物理地址,在目录中进行登记。

    C语言实现操作系统的文件系统操作

    切换目录、创建文件、删除文件、写入内容、重写内容、创建目录、删除目录、显示当前目录下所有子目录和子文件、查找文本内容、复制文件、复制子目录和文件、导入文件、导出文件、显示文件内容、保存磁盘数据、帮助...

    linux查看目录大小 linux统计目录大小并排序 查看目录下所有一级子目录文件夹大小 du -h –max-depth=1 |grep []

    du -sh --max-depth=1 #查看当前目录下所有一级子目录文件夹大小 du -h --max-depth=1 |sort #查看当前目录下所有一级子目录文件夹大小 并排序 du -h --max-depth=1 |grep [TG] |sort -nr #倒序排 FreeBSD下是...

    重复文件查找王 v1.8.rar

    亲爱的朋友,您正在使用的是“重复文件查找王”,一款为您以最快的速度找出指定目录中内容重复的文件列表,便于您据此清理文件,减少重复文件对磁盘空间的占用。本工具的主要功能:  提供7种匹配方法,我们称之为...

    一个高级的VB文件搜索程序.rar

    该VB工程源码是cScanPath 类的示例程序,这个搜索类可以指定文件路径进行文件查找.程序具有真正全面的过滤功能. 你可以按如下方式进行文件过滤:  按文件属性 (正常, 隐藏, 只读, 系统等)  文件大小 (&gt;, 文件日期...

    电子文件控制程序(流程).pdf

    5.2.3 其他各单位需在公司信息平台以电子形式发布的文件,需经部门负责人批准分公司二级文控(或各单位系 统维护员、秘书)确认后发布在各分公司/中心对应的文档库目录下,并依据需要设权限给相关部门,此类 为支持...

    Python简单的文件搜索工具

    使用场景及目标: 用户可以输入要搜索的目录路径和要查找的关键字,工具将递归搜索指定目录及其子目录中的所有文件,然后列出包含关键字的文件列表。目标是提供一个快速、简便的方式来查找文件,以满足在项目管理、...

    文件批量替换工具v1.3

    SuYogi Super Replace是一个32位专业级的在多文件中进行多组文本查找与替换... 支持通配符的文件过滤,可搜索一个目录及其子目录下的各种文件. 提供文件备份功能. 支持PC、UNIX、MAC文本文件格式的替换。

    python连接远程ftp服务器并列出目录下文件的方法

    本文实例讲述了python连接远程ftp服务器并列出目录下文件的方法。分享给大家供大家参考。具体如下: 这段python代码用到了pysftp模块,使用sftp协议,对数据进行加密传输 import pysftp srv = pysftp.Connection...

    操作系统课程设计-文件系统的模拟设计.doc

    二、设计内容 (1)概述 为Linux系统设计一个简单的二级文件系统。要求做到以下几点: 1.可以实现下列几条命令: login 用户登录 dir 列目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read ...

    桃源文件系统v3.3

    7、前台用户子帐号:支持前台用户建立多个同用户名,但密码不同的二级子账号,每个子账号对应相应子目录,系统支持丰富的子账号操作权限配置。有关访客可持二级子账号登陆后,按照该用户设置的权限获得服务系统有关...

    合肥工业大学操作系统课设-逻辑文件到物理文件映射

    逻辑文件到物理文件映射:目录查询,查找 Windows FAT 文件系统指定目录下 ... 从根目录找到子目录 Windows;  再找到子目录 System;  再找到文件 Telnet.hlp;  需要在 Windows API 或者系统调用一级实现

    操作系统实验十.doc

    数计学院教师实验教案 (实验十) 实验项目名称:文件系统设计 教师评分: 一、实验项目...主目录和子目录 都以文件的形式存放于磁盘,这样便于查找和修改。 用户创建的文件,可以编号存储于磁盘上。如:file0,file1,

    linux第二章实验讲解.mp4

    -R :递归显示子目录内容 -h :显示单位 alias :设置别名 alias 别名=“ls -l -a -h” du :统计目录(文件)的大小 -h :显示单位 -s :总大小 mkdir :创建目录 -p :递归创建 touch :创建空文件并...

Global site tag (gtag.js) - Google Analytics