mzjs-long

遍历查找指定目录的文件名

#include "stdio.h"
#include "windows.h"
#include "winbase.h"
void FindFileInDir(char* rootDir);
int main()
{
FindFileInDir("D:\\");  //自己改路径
return 0;
}

void FindFileInDir(char* rootDir)
{

WIN32_FIND_DATA fd;
ZeroMemory(&fd, sizeof(WIN32_FIND_DATA));
HANDLE hSearch;     //搜索句柄
char filePathName[256];   //搜索的起始文件名
ZeroMemory(filePathName, 256);
strcpy(filePathName, rootDir);
BOOL bSearchFinished = FALSE;

if( filePathName[strlen(filePathName) -1] != '\\' )//如果传过来的路径名不完整,如d: 则自动变为d:\\
 
{
  strcat(filePathName, "\\");  //strcat字符串追加
}
strcat(filePathName, "*"); //字符串追加,当前为d:\\*

hSearch = FindFirstFile(filePathName, &fd); //第一次搜索
printf("%s%s\n",rootDir,fd.cFileName);//显示路径+文件名
//如果不是目录
while( !bSearchFinished )
{
 
  if( FindNextFile(hSearch, &fd) ) //搜下一个文件
  {
  
   if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)    //如果是目录
   
    && strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
   {
    //什么也不做
   }
  
   else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )//如果是一个文件
   {
    printf("%s%s\n",rootDir,fd.cFileName);//显示路径+文件名
   
   }
  }
  else
  {
   if( GetLastError() == ERROR_NO_MORE_FILES )   //没有文件
   {
    bSearchFinished = TRUE;
   
   }
   else
    bSearchFinished = TRUE;
  }
}
FindClose(hSearch);

}

来自 [萝岗九龙社区] http://www.gzzsc.net

posted on 2011-08-30 23:19 白河愁 阅读(578) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理