关于调用目录下的文件

van101984 2007-09-29 01:44:28
如题~
我就是想把一个目录下的文件都调出来(在此之前我并不知道这个目录下到底有多少个文件),然后把他们一个一个赋到字符串的数组中。
请问这个要求可以实现么?
请高手指点~
小弟先谢谢了~!
...全文
220 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
FRANK9STAR 2007-10-02
  • 打赏
  • 举报
回复
a10002 2007-10-01
  • 打赏
  • 举报
回复
先学习,以后可能会用到.
van101984 2007-09-30
  • 打赏
  • 举报
回复
实在是太感谢了!!
maplewasp 2007-09-29
  • 打赏
  • 举报
回复
char **g_ppFiles = NULL;
int g_g_nFiles = 0;

void GetFilesName(char * myDir)
{
DIR * pDir = NULL;
struct dirent *entry = NULL;
int g_nFiles = 0;
int i = 0;

pDir = opendir(myDir);
if (NULL != pDir)
{
printf("opendir() failed!\n");
return;
}

//统计该目录下有多少个文件
while(NULL != (entry = readdir(pDir))
{
g_nFiles++;
}

//
g_ppFiles = new char *[g_nFiles];
rewinddir(pDir);
while(NULL != (entry = readdir(pDir))
{
g_ppFiles[i] = new char[strlen(entry->d_name) + 1];
strcpy(g_ppFiles[i++], entry->d_name);
}

closedir(pDir);
}

需要注意的是:
1:每个文件夹中都会有"."和"..", 你可以把它们过滤掉。
2: 当然file数组可以静态数组,但如果你用的file数组和我一样是动态分配的(也许你用的是malloc /free函数对),要注意内存的释放。

for(int i = 0; i < g_nFiles; i++)
{
delete [] g_ppFiles[i];
g_ppFiles[i] = NULL;
}

delete [] g_ppFiles;
g_ppFiles = NULL;
van101984 2007-09-29
  • 打赏
  • 举报
回复
比如说tffs0下面有3个文件a.txt,b.txt,c.txt
我想把他们3个分别赋到file[0],file[1],file[2]中。
van101984 2007-09-29
  • 打赏
  • 举报
回复
非常感谢你~
我不是很懂~你能再帮个忙么?
比如说我想把 "/tffs0/"下的所有文件名都赋到file[]中
怎么写?
谢谢了!
maplewasp 2007-09-29
  • 打赏
  • 举报
回复
给个实例代码:
#include "stdio.h"
#include "usrLib.h"
#include "dirent.h"

void list(char * myDir)
{
DIR * pDir = NULL;
struct dirent *entry = NULL;

pDir = opendir(myDir);
if (NULL != pDir)
{
printf("opendir() failed!\n");
return;
}

entry = readdir(pDir);
while(NULL != entry)
{
printf(entry->d_name);
printf("\n");
entry = readdir(pDir);
}

closedir(pDir);
}


2,179

社区成员

发帖
与我相关
我的任务
社区描述
xworks是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。
社区管理员
  • VxWorks开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧