c++如何查找一个文件目录下所有文件?
PHP中文网
PHP中文网 2017-04-17 14:29:41
0
3
461

c++如何查找一个文件目录下所有文件?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(3)
Peter_Zhu

雷雷

Peter_Zhu

给一个windows下的实现:

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <windows.h>
#include "io.h"
using namespace std;
char path[1000];
int len_path=0;

void get_info()
{
    path[len_path]='*',path[len_path+1]='rrreee';
    _finddatai64_t fileinfo;
    intptr_t handle=_findfirsti64(path,&fileinfo);
    if(handle==-1) return;
    while(!_findnexti64(handle,&fileinfo))
    {
        char *name=fileinfo.name;
        if(strcmp(name,".")==0||strcmp(name,"..")==0) continue;
        if(fileinfo.attrib&_A_SUBDIR)//递归子目录
        {
            int n=strlen(name);
            memcpy(path+len_path,name,n),len_path+=n;
            path[len_path++]='\';
            get_info();
            len_path-=n+1;
        }
        else puts(fileinfo.name);
    }
    _findclose(handle);
}

int main()
{
    strcpy(path,"D:\");
    len_path=strlen(path);
    get_info();
}
刘奇

我以前也写过这个:district10/FindFilesWithinFolder: Find and generate a file list of the folder.。

效果:

➜  build git:(master) ✗ ./FindFilesWithinFolder CMakeFiles
CMakeFiles/CMakeDirectoryInformation.cmake
CMakeFiles/Makefile2
CMakeFiles/progress.marks
CMakeFiles/TargetDirectories.txt
CMakeFiles/Makefile.cmake
CMakeFiles/cmake.check_cache
CMakeFiles/CMakeOutput.log
CMakeFiles/3.0.2/CMakeDetermineCompilerABI_CXX.bin
CMakeFiles/3.0.2/CMakeCCompiler.cmake
CMakeFiles/3.0.2/CMakeDetermineCompilerABI_C.bin
CMakeFiles/3.0.2/CMakeSystem.cmake
CMakeFiles/3.0.2/CMakeCXXCompiler.cmake
CMakeFiles/FindFilesWithinFolder.dir/link.txt
CMakeFiles/FindFilesWithinFolder.dir/main.cpp.o
CMakeFiles/FindFilesWithinFolder.dir/CXX.includecache
CMakeFiles/FindFilesWithinFolder.dir/cmake_clean.cmake
CMakeFiles/FindFilesWithinFolder.dir/DependInfo.cmake
CMakeFiles/FindFilesWithinFolder.dir/FindFiles.cpp.o
CMakeFiles/FindFilesWithinFolder.dir/depend.make
CMakeFiles/FindFilesWithinFolder.dir/depend.internal
CMakeFiles/FindFilesWithinFolder.dir/progress.make
CMakeFiles/FindFilesWithinFolder.dir/build.make
CMakeFiles/FindFilesWithinFolder.dir/flags.make
CMakeFiles/3.0.2/CompilerIdC/a.out
CMakeFiles/3.0.2/CompilerIdC/CMakeCCompilerId.c
CMakeFiles/3.0.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
CMakeFiles/3.0.2/CompilerIdCXX/a.out
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板