如何用C语言实现dir>abc.txt功能?
发布网友
发布时间:2022-09-24 02:52
我来回答
共3个回答
热心网友
时间:2023-09-11 05:50
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <dir.h>
#define RP "f:" /*需要进行查找的目录*/
#define FA ".Mp3" /*需要查找的文件类型*/
void find(char *c,FILE *fp)
{
struct ffblk fb,fm;
int dr,df;
char dir[255]={0},tmp[255];
strcpy(tmp,c);
dr=findfirst(strcat(tmp,"\\*"),&fb,FA_DIREC);
while (!dr)
{
if (strcmp(fb.ff_name,".")&&strcmp(fb.ff_name ,"..")&&fb.ff_attrib ==FA_DIREC) {
strcpy(dir,c);
strcat(dir,"\\");
strcat(dir,fb.ff_name);
find(dir,fp);
}
dr=findnext(&fb);
}
df=findfirst(strcat(tmp,FA),&fm,0);
while (!df)
{
fprintf(fp,"%s\\%s\n",c,fm.ff_name);
df=findnext(&fm);
}
}
int main(void)
{
FILE *fp;
fp=fopen("c:\\Songlist.ini","w");/*要保存查找结果的文件*/
find(RP,fp);
fclose(fp);
return 0;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
热心网友
时间:2023-09-11 05:50
下面是我用在linux下面遍历"/mnt/front_save/ide/video"下面文件的代码!它会把该文件夹下面的所有非‘.’开头的文件名保存到file数组中!要是要以要求的后缀结尾。这个你就要用strtok函数来对字符串进行分割!找到最后一个‘.’对最后分割的进行匹配
file[1024]={0};
DIR * dir;
struct dirent * ptr;
i= 0;
sprintf(buffer_str,"/mnt/front_save/ide/video");
dir =opendir(buffer_str);
while((ptr = readdir(dir))!=NULL)
{
if(ptr->d_type==8&&ptr->d_name[0]!='.'){//file
strcpy(file[i],ptr->d_name);
i++;
}
}
closedir(dir);
热心网友
时间:2023-09-11 05:51
system("dos cmd");
热心网友
时间:2023-09-11 05:50
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <dir.h>
#define RP "f:" /*需要进行查找的目录*/
#define FA ".Mp3" /*需要查找的文件类型*/
void find(char *c,FILE *fp)
{
struct ffblk fb,fm;
int dr,df;
char dir[255]={0},tmp[255];
strcpy(tmp,c);
dr=findfirst(strcat(tmp,"\\*"),&fb,FA_DIREC);
while (!dr)
{
if (strcmp(fb.ff_name,".")&&strcmp(fb.ff_name ,"..")&&fb.ff_attrib ==FA_DIREC) {
strcpy(dir,c);
strcat(dir,"\\");
strcat(dir,fb.ff_name);
find(dir,fp);
}
dr=findnext(&fb);
}
df=findfirst(strcat(tmp,FA),&fm,0);
while (!df)
{
fprintf(fp,"%s\\%s\n",c,fm.ff_name);
df=findnext(&fm);
}
}
int main(void)
{
FILE *fp;
fp=fopen("c:\\Songlist.ini","w");/*要保存查找结果的文件*/
find(RP,fp);
fclose(fp);
return 0;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
热心网友
时间:2023-09-11 05:50
下面是我用在linux下面遍历"/mnt/front_save/ide/video"下面文件的代码!它会把该文件夹下面的所有非‘.’开头的文件名保存到file数组中!要是要以要求的后缀结尾。这个你就要用strtok函数来对字符串进行分割!找到最后一个‘.’对最后分割的进行匹配
file[1024]={0};
DIR * dir;
struct dirent * ptr;
i= 0;
sprintf(buffer_str,"/mnt/front_save/ide/video");
dir =opendir(buffer_str);
while((ptr = readdir(dir))!=NULL)
{
if(ptr->d_type==8&&ptr->d_name[0]!='.'){//file
strcpy(file[i],ptr->d_name);
i++;
}
}
closedir(dir);
热心网友
时间:2023-09-11 05:51
system("dos cmd");