C++遍历文件夹
C++遍历文件夹
节操狗 发表于3年前
C++遍历文件夹
  • 发表于 3年前
  • 阅读 8
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

#include <windows.h>
#include <stdio.h>
#include <string.h>
#define LEN 1024

FILE *fp=fopen("traverse.xls", "w");


// 深度优先递归遍历目录中所有的文件

BOOL  DirectoryList(LPCSTR Path)
{
     WIN32_FIND_DATA FindData;
     HANDLE hError;
     int FileCount = 0;
     char FilePathName[LEN];

     // 构造路径
     char FullPathName[LEN];
     
     strcpy(FilePathName, Path);
     strcat(FilePathName, "\\*.*");

     hError = FindFirstFile(FilePathName, &FindData);

     if (hError == INVALID_HANDLE_VALUE)
	 {
         printf("搜索失败!");
         return 0;
	 }

     while(::FindNextFile(hError, &FindData))
	 {
         // 过虑.和..
         if (strcmp(FindData.cFileName, ".") == 0 
             || strcmp(FindData.cFileName, "..") == 0 )
		 {
            continue;
		 }
   
         // 构造完整路径
        wsprintf(FullPathName, "%s\\%s\\%s", Path,FindData.cFileName,FindData.dwFileAttributes);
		
        FileCount++;
        // 输出本级的文件
        printf("\n---%d  %s  ", FileCount, FullPathName);
		

		fprintf(fp, "%s\n", FullPathName);
 
        if (FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
		{
             printf("<Dir>");
             DirectoryList(FullPathName);
		}
        
	 }
	 
     return 0;
}
 
int main(int argc, char **argv)
{
	fprintf(fp, "%s\t %s\n","文件名","文件大小");

	char search[50];
    printf("请输入文件父路径:比如:\nD:\\123\n");
    scanf("%s",search);
    DirectoryList(search);

	fclose(fp);

    system("PAUSE");    
 
    return 0;
}


共有 人打赏支持
粉丝 0
博文 8
码字总数 5547
×
节操狗
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: