CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  Windows SDK/API

如何编程实现在全部硬盘中搜索文件?(急!在线等)

楼主berrey(小巫)2003-09-03 09:50:10 在 C++ Builder / Windows SDK/API 提问

一个思路也可以,谢谢! 问题点数:20、回复次数:3Top

1 楼gloom(苍狗白云)回复于 2003-09-03 10:09:30 得分 20

 
          AnsiString   disk="";  
          int   nResult=0;  
          for   (int   i='C';i<='Z';i++)  
          {  
                  disk=(char)i;  
                  disk+=":\\";  
                  nResult=GetDriveType(disk.c_str());  
                  if   (nResult!=DRIVE_FIXED)   continue;  
                  //在此搜索disk中的文件  
                  //FindFromDisk(disk);  
          }Top

2 楼gloom(苍狗白云)回复于 2003-09-03 10:16:02 得分 0

//---------------------------------------------------------------------------  
  //从一个目录搜索文件可以用下面代函数参考一下  
  unsigned   int   SearchFile(AnsiString   srcDir)  
  {  
          WIN32_FIND_DATA   FileData;  
          HANDLE   hSearch;  
          DWORD   dwAttrs;  
          AnsiString   SrcDir=srcDir+"*.*";  
          AnsiString   fName="";  
          unsigned   int   files=0;  
   
          BOOL   fFinished   =   FALSE;  
          hSearch   =   FindFirstFile((srcDir+"*.*").c_str(),   &FileData);  
          while   (!fFinished)  
          {  
                  fName=FileData.cFileName   ;  
                  bool   flag=true;  
                  if   (fName=="."||fName=="..")   flag=false;  
   
                  int   atr=FileData.dwFileAttributes   &faDirectory;  
                  //如果是文件夹  
                  if   (flag&&atr==faDirectory)  
                  {  
                          AnsiString   sDir=srcDir+fName;  
                          ch=*sDir.AnsiLastChar();  
                          if   (ch!='\\')   sDir+="\\";  
                          files+=SearchFile   (srcDir+fName+"\\");  
                  }  
                  //如果是文件  
                  else   if   (flag)  
                  {  
                          //判断是否是满足你要求的文件,是则操作此文件  
                          files++;  
                  }  
                  //搜索下一个文件  
                  if   (!FindNextFile(hSearch,   &FileData))  
                  {  
                          if   (GetLastError()   ==   ERROR_NO_MORE_FILES)  
                          {  
                                  fFinished   =   TRUE;  
                          }  
                  }  
          }  
          if   (!FindClose(hSearch))  
          {  
                  ShowMessage("无法关闭文件!");  
          }  
          return   files;  
  }  
  //---------------------------------------------------------------------------Top

3 楼gloom(苍狗白云)回复于 2003-09-03 10:20:23 得分 0

//---------------------------------------------------------------------------  
  unsigned   int   TForm1::SearchFile(AnsiString   srcDir)  
  {  
          WIN32_FIND_DATA   FileData;  
          HANDLE   hSearch;  
          DWORD   dwAttrs;  
          AnsiString   SrcDir=srcDir+"*.*";  
          AnsiString   fName="";  
          unsigned   int   files=0;  
   
          BOOL   fFinished   =   FALSE;  
          hSearch   =   FindFirstFile((srcDir+"*.*").c_str(),   &FileData);  
          while   (!fFinished)  
          {  
                  fName=FileData.cFileName   ;  
                  bool   flag=true;  
                  if   (fName=="."||fName=="..")   flag=false;  
   
                  int   atr=FileData.dwFileAttributes   &faDirectory;  
                  //如果是文件夹  
                  if   (flag&&atr==faDirectory)  
                  {  
                          AnsiString   sDir=srcDir+fName;  
                          ch=*sDir.AnsiLastChar();  
                          if   (ch!='\\')   sDir+="\\";  
                          files+=SearchFile   (srcDir+fName+"\\");  
                  }  
                  //如果是文件  
                  else   if   (flag)  
                  {  
                          //判断是否是满足你要求的文件,是则操作此文件  
                          files++;  
                  }  
                  //搜索下一个文件  
                  if   (!FindNextFile(hSearch,   &FileData))  
                  {  
                          if   (GetLastError()   ==   ERROR_NO_MORE_FILES)  
                          {  
                                  fFinished   =   TRUE;  
                          }  
                  }  
          }  
          if   (!FindClose(hSearch))  
          {  
                  ShowMessage("无法关闭文件!");  
          }  
          return   files;  
  }  
  //---------------------------------------------------------------------------Top

4 楼constantine(飘遥的安吉儿)回复于 2003-09-16 21:27:11 得分 0

学习!Top

相关问题

  • 搜索整个硬盘的文件,查找*.rm文件。
  • 怎样编程对硬盘进行保护,不许用户删除文件。
  • 100分请教:在Unix下编程搜索文件内容如何实现?!
  • 多线程文件搜索的问题(第一次进行多线程编程)
  • 怎么实现文件的搜索,在本地硬盘的搜索
  • 用ISAPI编程怎么实现文件的传输(象网络硬盘那样的功能)
  • 请问,如何通过VB6编程下载文件http://202.112.154.116/ssyr/dfgh.pdg到我的硬盘上。文件dfgh.pdg不是文本文件。
  • 请教:linux下的硬盘文件搜索函数怎么写?(用c or c++)
  • 如何搜索全部硬盘上的全部文件夹中的文件:大白鲨
  • 关于多文件编程

关键词

得分解答快速导航

  • 帖主:berrey
  • gloom

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo