Ⅰ 如何获取目录下所有文件名 c++
以下程序只能在Windows下运行,完全按照c语言编写。但是添加了windows.h库。以下程序在Visual C++ 2008下编译通过。#undef UNICODE // 如果你不知道什么意思,请不要修改#define MAX_RESULT 256#include <stdio.h>#include <stdlib.h>#include <Windows.h>char** EnumFiles(const char *directory, int *count){ WIN32_FIND_DATA FindFileData; HANDLE hFind; char result[MAX_RESULT][MAX_PATH]; char **returnresult; char pattern[MAX_PATH]; int i = 0, j; // 开始查找 strcpy(pattern, directory); strcat(pattern, "\\*.*"); hFind = FindFirstFile(pattern, &FindFileData); if (hFind == INVALID_HANDLE_VALUE) { *count = 0; return NULL; } else { do { strcpy(result[i++], FindFileData.cFileName); } while (FindNextFile(hFind, &FindFileData) != 0); } // 查找结束 FindClose(hFind); // 复制到结果中 returnresult = (char **)calloc(i, sizeof(char *)); for (j = 0; j < i; j++) { returnresult[j] = (char *)calloc(MAX_PATH, sizeof(char)); strcpy(returnresult[j], result[j]); } *count = i; return returnresult;}void main(){ int i, count; char ** result; char directory[MAX_PATH]; printf("请输入要查询的文件夹:"); scanf("%s", directory); result = EnumFiles(directory, &count); for (i = 0; i < count; i++) printf("%s\n", result[i]);}
Ⅱ 如何获取一个文件夹中所有文件的文件名
用DOS命令:(假设你的这个文件夹是c:\pdf)dirc:\pdf\*.pdf>c:\pdf\list.txt运行完之后到目录下去找一个文件名是list.txt的,打开就是文件名了
Ⅲ 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语言读取文件名问题
用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语言获得一个目录下所有文件的文件名
void enum_path(char *cpath){ WIN32_FIND_DATA wfd; HANDLE hfd; char cdir[MAX_PATH]; char subdir[MAX_PATH]; int r; GetCurrentDirectory(MAX_PATH,cdir); SetCurrentDirectory(cpath); hfd = FindFirstFile("*.*",&wfd); if(hfd!=INVALID_HANDLE_VALUE) { do{ if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if(wfd.cFileName[0] != '.') { // 合成完整路径名 sprintf(subdir,"%s\\%s",cpath,wfd.cFileName); // 递归枚举子目录 enum_path(subdir); } }else{ printf("%s\\%s\n",cpath,wfd.cFileName); // 病毒可根据后缀名判断是 // 否要感染相应的文件 } }while(r=FindNextFile(hfd,&wfd),r!=0); } SetCurrentDirectory(cdir); }
Ⅵ c语言获取文件名
voidget_filename(char*path,char*name){inti,j=0;for(i=0;path[i];i++)if(path[i]=='\')j=i;strcpy(name,&path[j]);}
这样得到的name就是你需要的。专
PS:对于属windows 路径中的是 而不是你题目中的/
Ⅶ C语言中,如何获得文件名
WIN32_FIND_DATA find_data;
HANDLE search_handle;
search_handle = FindFirstFile( DirectoryPath,&find_data );
if (search_handle != INVALID_HANDLE_VALUE)
{
do
{
if (find_data.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
CString name = find_data.cFileName;
if( (name == ".")||(name == "..") )
continue;
}
}while(FindNextFile(search_handle,&find_data));
FindClose(search_handle);
Ⅷ c语言 读取目录中的文件名,并将其存入数组中
用system调用DOSDIR命令就可以了:system("dirsss_*/B>log.txt");这就把前缀为sss_的文抄件文件名存入log.txt文件了。一个名字袭一行,没有别的东西。你再读出来。#include<stdio.h>main(){FILE*fp;charstr[30][50];//假定文件数不超过30个inti,n=0;system("dirsss_*/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]);}
Ⅸ 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语言怎么读取某一文件夹下的所有文件夹和文件
读取的代码方式如下:
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语言怎么读取某一文件夹下的所有文件夹和文件