文件管理 · 2022年8月6日

c获取文件夹下所有文件|C语言怎么读取某一文件夹下的所有文件夹和文件

① C# 遍历文件夹下所有子文件夹中的文件,得到文件名

假设a文件夹在F盘下,代码如下。将文件名输出到一个ListBox中using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;namespace WindowsFormsApplication1{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button2_Click(object sender, EventArgs e) { DirectoryInfo theFolder = new DirectoryInfo(@"F:\a\"); DirectoryInfo[] dirInfo = theFolder.GetDirectories(); //遍历文件夹 foreach (DirectoryInfo NextFolder in dirInfo) { // this.listBox1.Items.Add(NextFolder.Name); FileInfo[] fileInfo = NextFolder.GetFiles(); foreach (FileInfo NextFile in fileInfo) //遍历文件 this.listBox2.Items.Add(NextFile.Name); } } }}

② 如何获得某一文件夹下文件列表(C语言)

我也有同样来的问题。到网上查,源感觉实现较复杂。最后用的是c语言调用cmd生成文件列表文件,再用c语言去读取那个文件。进行字符串处理。c语言调用cmd 为 system(“cmd命令”);比如:#include <stdio.h>#include <dos.h>int main(){ system("dir /s /b > filelist.txt");/*这是全部文件,包括子目录*/ system("dir *.txt /b > filelist2.txt"); /*当前目录下的所有txt文件,不包括子目录*/ /*然后*/ sleep(100); FILE * ptrin = fopen("filelist","r");/*读取并进行处理*/ /*处理*/ /*关闭文件flose(ptrin);*/ return 0;}希望有谁有更好的办法。

③ c++ 怎么读取一个目录下的所有文件

遍历文件,用FindFirstFile或者_findfirstfile及其配套的函数,下面是一个简单的例子

//.hstructfile_tree{public:file_tree();intfind_first(constchar*path);intfind_next();intis_file();intis_folder();FILETIMEget_create_time();FILETIMEget_last_modified_time();FILETIMEget_last_access_time();constchar*get_name();~file_tree();private:HANDLEhandle;WIN32_FIND_DATAfd;};//.cppfile_tree::file_tree():handle(INVALID_HANDLE_VALUE){}intfile_tree::find_first(constchar*path){if(handle!=INVALID_HANDLE_VALUE){FindClose(handle);}staticcharall[MAX_FILE_PATH_LEN+5];sprintf(all,"%s\*",path);handle=FindFirstFile(all,&fd);return0;}intfile_tree::find_next(){returnFindNextFile(handle,&fd);}intfile_tree::is_file(){return(fd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)==0;}intfile_tree::is_folder(){returnfd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY;}FILETIMEfile_tree::get_create_time(){returnfd.ftCreationTime;}FILETIMEfile_tree::get_last_modified_time(){returnfd.ftLastWriteTime;}FILETIMEfile_tree::get_last_access_time(){returnfd.ftLastAccessTime;}constchar*file_tree::get_name(){returnfd.cFileName;}file_tree::~file_tree(){if(handle!=INVALID_HANDLE_VALUE)FindClose(handle);}

然后使用递归,

voiddoFolder(){file_treeft;ft.find_first(data->from);ft.find_next();while(ft.find_next()){if(ft.is_file()){doFile();}elseif(ft.is_folder()){doFolder();}else{//TODO}}}

④ 如何获取一个文件夹中所有文件的文件名

用DOS命令:(假设你的这个文件夹是c:\pdf)dirc:\pdf\*.pdf>c:\pdf\list.txt运行完之后到目录下去找一个文件名是list.txt的,打开就是文件名了

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

#include <stdio.h>#include <stdlib.h>void main() {system("DIR /D C:\\ /s /B > a.log");}C:\下的所有抄文件夹袭,子文件夹里所有文件,转向到 文本文件 a.log 里。格式:C:\aaa\bbb\ccc\…只要文件夹命令:dir /d c: /B /ad 只要文件夹命令,含子文件夹:dir /d c: /B /ad /s

⑥ 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#怎么读取某一文件夹下的所有文件夹和文件

读取的代码方式如下:

int main()

{

long file;

struct _finddata_t find;

_chdir("d:\");

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

{

printf("空白!
");

exit(0);

}

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

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

{

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

}

_findclose(file);

return 0;

}

⑧ 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()函数;

intmain(intargc,char*argv[]){DIR*directory_pointer;structdirent*entry;if((directory_pointer=opendir("d:\XL"))==NULL)printf("Erroropening
");else{while((entry=readdir(directory_pointer))!=NULL){printf("%s
",entry->d_name);}closedir(directory_pointer);}system("PAUSE");return0;}

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

intmain(intargc,char*argv[]){longfile;struct_finddata_tfind;_chdir("d:\");if((file=_findfirst("*.*",&find))==-1L){printf("空白!
");exit(0);}printf("%s
",find.name);while(_findnext(file,&find)==0){printf("%s
",find.name);}_findclose(file);system("PAUSE");return0;}

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

#include <stdio.h>#include<io.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语言怎么读取某一文件夹下的所有文件夹和文件

读取的代码方式如下:

int main()

{

long file;

struct _finddata_t find;

_chdir("d:\");

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

{

printf("空白!
");

exit(0);

}

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

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

{

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

}

_findclose(file);

return 0;

}