如何在VS 2010中使用ANSI C获取文件夹下所有的文件和子文件夹?

时间:2022-09-21 19:15:55
如何在VS 2010中使用ANSI C获取文件夹下所有的文件和子文件夹?
Windows 下我会使用DEV C++中的函数opendir/readdir/closedir来实现子文件夹和文件的获取。

#include <stdio.h>
#include <dirent.h>

int main()
{
    DIR *dir;
    char *folder = "C:/";
    struct dirent *idir;
    
    dir = opendir(folder);
    
    if (dir) {
        while ((idir = readdir(dir)) != NULL) {       
            printf("%s\t%d\t%d\t%d\n", idir->d_name, idir->d_namlen,idir->d_ino, idir->d_reclen);   
        }   
        closedir(dir);                                                                                 
    }  
    getchar();    
    return 0;
}     
上面的代码可以打印出C盘的文件信息。
请大伙帮忙在VS 2010中使用哪个头文件里的哪几个函数,获取文件夹里的文件和子文件夹。请大家用C描述。

5 个解决方案

#1


友情帮顶.

#2


_findfirst
_findnext

#3


+1
引用 2 楼 akirya 的回复:
_findfirst
_findnext

#4


system("dir /b /a-d c:\\*.* >d:\\allfiles.txt");
//读文件d:\\allfiles.txt的内容即C:\\下所有文件的名字
system("dir /b /ad c:\\*.* >d:\\alldirs.txt");
//读文件d:\\alldirs.txt的内容即C:\\下所有子目录的名字

计算机组成原理→ DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

#5


请记住,能用dir命令获取的文件或文件夹信息最好用dir命令获取而不要用各种API获取,因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时,API会处理的不全面或陷入死循环,而dir命令不会。

#1


友情帮顶.

#2


_findfirst
_findnext

#3


+1
引用 2 楼 akirya 的回复:
_findfirst
_findnext

#4


system("dir /b /a-d c:\\*.* >d:\\allfiles.txt");
//读文件d:\\allfiles.txt的内容即C:\\下所有文件的名字
system("dir /b /ad c:\\*.* >d:\\alldirs.txt");
//读文件d:\\alldirs.txt的内容即C:\\下所有子目录的名字

计算机组成原理→ DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

#5


请记住,能用dir命令获取的文件或文件夹信息最好用dir命令获取而不要用各种API获取,因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时,API会处理的不全面或陷入死循环,而dir命令不会。