c语言 读取目录中的文件名,并将其存入数组中 30

在一个目录中,有多个有命名规则的文件,例如前缀为sss_的文件,我希望读取这个目录中所有前缀为sss_的文件名,并将这些文件名存入一个数组中,该怎么办呢希望大家能帮到我... 在一个目录中,有多个有命名规则的文件,例如前缀为sss_的文件,我希望读取这个目录中所有前缀为sss_的文件名,并将这些文件名存入一个数组中,该怎么办呢
希望大家能帮到我
展开
 我来答
金色潜鸟
2014-01-22 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5675万
展开全部
用system 调用 DOS DIR 命令就可以了:
system ( "dir sss_* /B > log.txt");
这就把 前缀为sss_的文件 文件名 存入 log.txt 文件了。
一个名字一行,没有别的东西。
你再 读出来。
#include <stdio.h>
main()
{
FILE *fp;
char str[30][50]; // 假定文件数不超过30个
int i,n=0;
system("dir sss_* /B > log.txt");
fp=fopen("log.txt","r");
while(1){
if ( fgets(str[n],50,fp)==NULL) break;
str[n][strlen(str[n])-1]='\0'; // 加一个字符串结束符
n++;
}
fclose(fp);
for (i=0;i<n;i++) printf("%s\n",str[i]);

}
kaixingui2012
推荐于2017-09-20 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6399万
展开全部

在linux编译器下,可采用目录操作函数,读取当前目录下的文件

#include <sys/types.h>
#include <dirent.h> //windows开发工具没有这个头文件
#include <unistd.h>
#include <string.h>
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);//关闭目录指针
}

在windows下,如VC也有类似的操作函数,如:

#include <string>
#include <iostream> 
using namespace std;

#include <WINDOWS.H>  

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);  
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
火舞蝶衣
2014-01-21 · TA获得超过3818个赞
知道小有建树答主
回答量:1521
采纳率:50%
帮助的人:504万
展开全部
  1. 把所有的文件名一个个提取出来

  2. 用字符串的startwith或是find函数来判断是不是以sss_开头,若是的话,就加到一个数组里

追问
关键是如何将所有的文件名一个一个提取出来呢,谢谢了,能不能给出具体代码呢
追答
C语言可以用system(command)吧,和操作系统有关,windows可以用dir,linux可以用ls,或是目录有个类之类的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
失落间谍
2014-01-21 · TA获得超过172个赞
知道小有建树答主
回答量:242
采纳率:0%
帮助的人:128万
展开全部
读取所有文件名 再刷选就ok了
追问
能不能给点代码呢,实在是不会做了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hardlyMb
2014-01-21
知道答主
回答量:79
采纳率:0%
帮助的人:48.4万
展开全部
符数组的程序 编译和构建都没
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式