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
_findnext
#3
+1
#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++)、架构……
//读文件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
_findnext
#3
+1
#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++)、架构……
//读文件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命令不会。