欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

遍历读取文件夹与文件算法

遍历读取文件夹与文件算法

一直对控制台应用程序情有独钟,之前写了这个 遍历读取文件夹和文件 算法。希望能得到一个邀请码。附上附件。谢谢。。

#include "stdafx.h"
#include <windows.h>
#include <iostream>
using namespace std;
//============声明遍历文件与文件夹的函数===============//
void TraverseFile(char *FileDirectory);
//====================main函数======================//
int main(int argc, char* argv[])
{
  system("title 文件遍历器   By: baoss");
  cout<<"Please input a file directory: ";
  char FileDirectory[MAX_PATH];
  cin>>FileDirectory;
  //====开始调用====//
  TraverseFile(FileDirectory);
  system("pause");
  return 0;
}

//============声明遍历文件与文件夹的函数===============//
void TraverseFile(char *FileDirectory)
{
  char szFileName[MAX_PATH];
  strcpy(szFileName,FileDirectory);
  strcat(szFileName,"\\*.*");
  WIN32_FIND_DATA FindData;
  HANDLE hFile;
  hFile = FindFirstFile(szFileName,&FindData);

  if(hFile != INVALID_HANDLE_VALUE)
  {
    if(FindData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
    {
      if((strcmp(FindData.cFileName,".") != 0) &&  (strcmp(FindData.cFileName,"..") != 0))
      {
        char Dir[MAX_PATH];
        strcpy(Dir,(char *)FileDirectory);
        strcat(Dir,"\\");
        strcat(Dir,(char *)FindData.cFileName);
        cout<<"目录: "<<Dir<<endl;
      }
      
    }
    else
    {
      char FileDir[MAX_PATH];
      strcpy(FileDir,(char *)FileDirectory);
      strcat(FileDir,"\\");
      strcat(FileDir,(char *)FindData.cFileName);
      cout<<"文件: "<<FileDir<<endl;
    }
    
    while (FindNextFile(hFile,&FindData))
    {
      if(FindData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
      {
        if((strcmp(FindData.cFileName,".") != 0) &&  (strcmp(FindData.cFileName,"..") != 0))
        {
          char Dir[MAX_PATH];
          strcpy(Dir,(char *)FileDirectory);
          strcat(Dir,"\\");
          strcat(Dir,(char *)FindData.cFileName);
          cout<<"目录: "<<Dir<<endl;
          
              //==递归调用==//
          TraverseFile(Dir);
        }
        
      }
      else
      {
        char FileDir[MAX_PATH];
        strcpy(FileDir,(char *)FileDirectory);
        strcat(FileDir,"\\");
        strcat(FileDir,(char *)FindData.cFileName);
        cout<<"文件: "<<FileDir<<endl;
      }
    }
    FindClose( hFile );
    
  }
  else
  {
    cout<<"Invalid file directory !"<<endl;
  }
}

上传的附件 TraverseFile.rar

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功