您的位置:

c语言读取目录下所有文件内容,c语言读取文件夹下的所有文件

本文目录一览:

C语言中,如何读取同一文件夹下的所有txt文件?

#include stdio.h

#includeio.h

int main(int argc, char *argv[])

{

struct _finddata_t fa;

long fHandle;

if( (fHandle=_findfirst( "*.txt", fa ))==-1L )//这里可以改成需要的目录

{

printf( "当前目录下没有txt文件\n");

return 0;

}

else

do

{

printf( "找到文件:%s\n", fa.name );

}while( _findnext(fHandle,fa)==0 );

_findclose( fHandle );

return 0;

}

求c语言代码 读入多个文件夹内的所有txt文件

首先要知道文件夹内所有txt文件的名称,然后使用fopen函数分别打开哥哥txt文件,分别读入即可。

1.fopen的函数原型:FILE * fopen(const char * path,const char * mode);

  fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:

r 以只读方式打开文件,该文件必须存在。

r+ 以可读写方式打开文件,该文件必须存在。

rb+ 读写打开一个二进制文件,允许读数据。

rw+ 读写打开一个文本文件,允许读和写。

w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)

a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)

wb 只写打开或新建一个二进制文件;只允许写数据。

wb+ 读写打开或建立一个二进制文件,允许读和写。

wt+ 读写打开或着建立一个文本文件;允许读写。

at+ 读写打开一个文本文件,允许读或在文本末追加数据。

ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。

    返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。

2.例程:

#includestdio.h

#define F_PATH "d:\\myfile\\file.txt"

#define F_PATH1 "d:\\myfile\\file1.txt"

char c;

int main(){

    FILE*fp=NULL;//需要注意

    fp=fopen(F_PATH,"r");    //打开第一个txt文件

    if(NULL==fp) return -1;//要返回错误代码

    while(fscanf(fp,"%c",c)!=EOF) printf("%c",c); //从文本中读入并在控制台打印出来

    fclose(fp);

    fp=NULL;//需要指向空,否则会指向原打开文件地址

    fp=NULL;//需要注意

    fp=fopen(F_PATH1,"r");    //打开第二个txt文件

    if(NULL==fp) return -1;//要返回错误代码

    while(fscanf(fp,"%c",c)!=EOF) printf("%c",c); //从文本中读入并在控制台打印出来

    fclose(fp);

    fp=NULL;//需要指向空,否则会指向原打开文件地址   

    return 0;

}

c语言 怎样获取文件夹中的所有文件

较简单的是用DOS命令 DIR 并转向到一个文件,再打开文件读出一个一个文件名。

例如:

char my_cmd[80] = "DIR/B/A-D D:\\USER\\WANG abc.lis";

system( cmd);

你就获得D:\\USER\\WANG 文件夹中的所有文件,选项意思是 只列 文件名,并按字母排列。

abc.lis 转向,存入文件 abc.lis

接着,你可以 用FILE *fp; fp = fopen("abc.lis","r"); 打开文件

用 fgets() 读文件名。

如何用C语言获取目录下的文件和目录列表?

1、可以利用getenv函数来实现。

在Linux系统中,home目录的定义是通过系统环境变量中的HOME变量值来确定的,在shell下可以通过

echo $HOME来查看。

而在C语言中,库函数getenv可以用作获取环境变量值。该函数位于stdlib.h, 原型为

char *getenv(char *name);

功能为获取名字为name的环境变量字符串。

所以,下面代码就可以获取到home目录名了:

2、例程:

char *home;

home = getenv("HOME");

printf("the home path is %s\n", home);

C语言如何读取指定路径下的所有指定格式的文件?

用C语言读取目录中的文件名的方法:

1、如果是在window环境下,可以用一下方法:

使用stdlib.h头文件声明的system()函数

_CRTIMP int __cdecl system (const char*);

system("dir c:\\ /a:h /b c:\\dir.txt");

调用系统命令dir,把c:目录下文件列表写入文件dir.txt中

2、使用dirent.h头文件中声明的opendir(),readdir()函数;

int main(int argc, char *argv[])

  DIR *directory_pointer; 

    struct dirent *entry; 

   

    if((directory_pointer=opendir("d:\\XL"))==NULL) 

        printf( "Error opening \n "); 

    else 

    { 

        while((entry=readdir(directory_pointer))!=NULL) 

        { 

          printf("%s\n",entry- d_name);

        } 

        closedir(directory_pointer); 

       

    }

  system("PAUSE");

 return 0;

}

3、如果没有dirent.h,可以使用io.h头文件中声明的_findfirst(),_findnext()函数;

示例代码:

int main(int argc, char *argv[])

{

  long file;

    struct _finddata_t find;

    

     _chdir("d:\\");

     if((file=_findfirst("*.*", find))==-1L)

  {

      printf("空白!\n");

     exit(0);

     }

     printf("%s\n", find.name);

     while(_findnext(file, find)==0)

     {

          printf("%s\n", find.name);

     }

     _findclose(file);

  

  system("PAUSE");

     return 0;

}