c++中怎么把读取文件夹下的所有文件名存入数组

2024-10-30 06:40:49
推荐回答(3个)
回答1:

1、在linux平台,可采用目录操作函数,读取当前目录下的文件
#include
#include //windows开发工具没有这个头文件
#include
#include
main()
{
DIR * dir;
struct dirent * ptr;
char file_list[100][40];
int i=0;
dir = opendir("/etc/rc.d"); //打开一个目录
while((ptr = readdir(dir)) != NULL) //循环读取目录数据
{
printf("d_name : %s\n", ptr->d_name); //输出文件名
strcpy(file_list[i],ptr->d_name ); //存储到数组
if ( ++i>=100 ) break;
}
closedir(dir);//关闭目录指针
}
2、在windows平台下,如VC也有类似的操作函数,如:
#include
#include
using namespace std;

#include

void main()
{
string szPath="d:/*.*";
WIN32_FIND_DATA wfd;
HANDLE hFind;
char file_list[100][40];
int i=0;

hFind = FindFirstFile(szPath.c_str(), &wfd) ;
do
{
cout << wfd.cFileName << endl ;
strcpy(file_list[i],wfd.cFileName ); //存储到数组
if ( ++i>=100 ) break;
}while (FindNextFile(hFind, &wfd));

FindClose(hFind);
}

回答2:

简单点的:
char x[100][100] = {{0}};
int i = 0;
system("dir /B/A-D C:\Windows > filelist.txt");
fp = fopen("filelist.txt", "r");
while (!feof(fp) && i < 100)
{
fgets(x[i++], fp);
}

回答3:

如果是windows的话,有专门遍历文件的API 一边遍历一边放进去就可以了