查找目录或文件的几种方法

原创 2004年10月10日 13:57:00
(A)指定文件查找
function TForm1.findSpecFile(sDirectory,fName:string):boolean;
var sr: TSearchRec  ;
begin
  if FindFirst(sDirectory+fName, faAnyFile, sr) = 0 then
  begin
    FindClose(sr);
    result:=true;
  end else begin
    result:=false;
  end;
end;

(B)文件名包含查找
procedure TForm1.findLikeFile(sDirectory,likeName:string);
var  sr: TSearchRec;
begin
  if FindFirst(sDirectory+'*.*', faAnyFile, sr) = 0 then
  begin
    repeat
      if pos(likeName,lowercase(sr.Name))>0 then begin
        if (sr.Attr and faDirectory)=0 then
          ListBox1.Items.Add('文件:'+sDirectory+sr.Name)
        else
          ListBox1.Items.Add('目录:'+sDirectory+sr.Name)  ;
      end;
    until FindNext(sr) <> 0;
    FindClose(sr);
  end;
end;


////////////////////////////////////////////////////////////////////////////
(1)查找指定扩展名的文件
procedure TForm1.Button1Click(Sender: TObject);
var  sr: TSearchRec;
begin
  ListBox1.Items.Clear ;
  if FindFirst('D:/work/*.xls', faAnyFile, sr) = 0 then
  begin
    repeat
      if pos('.xls',lowercase(sr.Name))>0 then
        ListBox1.Items.Add(sr.Name)  ;
    until FindNext(sr) <> 0;
    FindClose(sr);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.Items.Clear ;
  findLikeFile('D:/work/','xls');
end;


(2)查找某目录下的所有文件,非目录
procedure TForm1.Button2Click(Sender: TObject);
var  sr: TSearchRec;
begin
  ListBox1.Items.Clear ;
  if FindFirst('D:/work/*.*', faAnyFile, sr) = 0 then
  begin
    repeat
      if (sr.Attr and faDirectory)=0 then
        ListBox1.Items.Add(sr.Name+ '   '+intToStr(sr.Attr))  ;
    until FindNext(sr) <> 0;
    FindClose(sr);
  end;
  showMessage(intToStr(ListBox1.Items.count));
end;

(3)查找某目录下的所有目录,包含 “.”  “..”
procedure TForm1.Button2Click(Sender: TObject);
var  sr: TSearchRec;
begin
  ListBox1.Items.Clear ;
  if FindFirst('D:/work/*.*', faAnyFile, sr) = 0 then
  begin
    repeat
      if (sr.Attr and faDirectory)<>0 then
        ListBox1.Items.Add(sr.Name+ '   '+intToStr(sr.Attr))  ;
    until FindNext(sr) <> 0;
    FindClose(sr);
  end;
  showMessage(intToStr(ListBox1.Items.count));
end;

(4)查找某目录下的指定文件,包含子目录
procedure TForm1.Button1Click(Sender: TObject);
  //逐层目录第归
  procedure findSubDir(parentDir:string);
  var sr: TSearchRec; sDir:string;
  begin
    //(1)查找当前目录
    StatusBar1.SimpleText := parentDir;
    findSpecFile(parentDir,'test.txt');    //(A)指定文件查找
    //findLikeFile(parentDir,'test');      //(B)文件名包含查找

    //(2)第归查找子目录
    if FindFirst(parentDir+'*.*', faAnyFile, sr) = 0 then
    begin
      repeat
        if (sr.Name='..')or(sr.Name='.') then continue;
        if (sr.Attr and faDirectory)<>0 then
        begin
          sDir:=parentDir+sr.Name+'/';
          findSubDir(sDir);     //逐层第归
        end;
      until FindNext(sr) <> 0;
      FindClose(sr);
    end;
  end;
var
  sr: TSearchRec; sDir:string;
begin
  Screen.Cursor :=  crHourGlass;
  ListBox1.Items.Clear ;
  try
    sDir:='D:/back/';  //初始目录
    findSubDir(sDir);
    if ListBox1.Items.Count >0 then
      StatusBar1.SimpleText :='共找到个'+intToStr(ListBox1.Items.Count)+'文件'
    else
      StatusBar1.SimpleText :='没有找到文件';
  finally
    Screen.Cursor := crDefault;
  end;
end;

"404 - 找不到文件或目录" 问题解决

部署IIS时,某个文件会出现下面的错误 404 - 找不到文件或目录。 您要查找的资源可能已被删除,已更改名称或者暂时不可用。 有几种情况要考虑: 1 权限不足,分配一个用户足够权限 2 文...
  • wxw_317
  • wxw_317
  • 2014年01月12日 15:49
  • 17172

Ubuntu Linux 解决 bash ./ 没有那个文件或目录 的方法

报错: bash: ./lmhostid: 没有那个文件或目录 一开始以为是权限的问题 输入: chmod +x lmhostid.sh 报错: chmod: 无法访问"lmhostid.sh"...
  • xzm941012
  • xzm941012
  • 2014年10月13日 15:30
  • 444

linux&nbsp;查找目录或文件

查找目录:find /(查找范围) -name '查找关键字' -type d 查找文件:find /(查找范围) -name 查找关键字 -print     如果需要更进一步的了解,可以参看...
  • wakeupwakeup
  • wakeupwakeup
  • 2016年01月14日 09:10
  • 160

linux 查找目录或文件

查找目录:find /(查找范围) -name '查找关键字' -type d 查找文件:find /(查找范围) -name 查找关键字 -print     如果需要更进一步的...
  • heirenheiren
  • heirenheiren
  • 2013年11月12日 15:11
  • 406

Linux下查找目录或文件

查找目录:find /(查找范围) -name '查找关键字' -type d 查找文件:find /(查找范围) -name 查找关键字 -print     如果需要更进一步的...
  • yaooch
  • yaooch
  • 2015年06月04日 10:40
  • 248

linux 查找目录或文件

查找目录:find /(查找范围) -name '查找关键字' -type d 查找文件:find /(查找范围) -name 查找关键字 -print  如果需要更进一步的了解,可以参看Linux...
  • wind_324
  • wind_324
  • 2010年11月10日 11:31
  • 1012

linux 查找目录或文件

查找目录:find /(查找范围) -name '查找关键字' -type d查找文件:find /(查找范围) -name 查找关键字 -print     如果需要更进一步的了解,可以参看L...
  • xiaomin1991222
  • xiaomin1991222
  • 2016年03月10日 16:05
  • 70

无法查找或打开PDB文件

 本文转自:http://blog.csdn.net/zj360202/article/details/38678207?utm_source=tuicool vs2013运行c++出现:无法...
  • Sunshine_in_Moon
  • Sunshine_in_Moon
  • 2015年05月22日 22:49
  • 5220

Ubuntu下解决bash 没有那个文件或目录的方法

因为之前电脑硬盘坏掉,维修换了新硬盘,今天重新安装了ubuntu,装好之后就赶紧搭建工作环境,将备份的资料拷贝进来,搭建交叉编译环境,但是发现,修改bashrc中PATH绝对路径指向交叉编译器后,在命...
  • pangguoming
  • pangguoming
  • 2016年02月01日 16:38
  • 171

IIS 404.0资源找不到问题

发布MVC4项目时,页面使用的是用URLRewriter.dll实现伪静态,在webconfig中有配置RewriterConfig节点。对于http://localhost:8079/1-2.htm...
  • chenqiangdage
  • chenqiangdage
  • 2015年07月22日 09:48
  • 2714
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:查找目录或文件的几种方法
举报原因:
原因补充:

(最多只允许输入30个字)