当前位置:首页 » 文件管理 » c循环遍历文件夹

c循环遍历文件夹

发布时间: 2023-09-14 23:23:48

Ⅰ 在windows下 怎么用c语言遍历文件夹要用纯c的

什么叫纯C?
用C语言遍历文件肯定需要用到函数,标准C下貌似没有这个函数,但是使用VC的函数库可能可以实现,如果实在不行可以用第三方函数库,,,还不行的话用system("command");引用dos命令可以遍历,

Ⅱ C语言:如何遍历指定的文件夹(可以包括子文件夹)中的每一个文件名

Function SearchFiles(Path As String, FileType As String)
Dim Files() As String '文件路径
Dim Folder() As String '文件夹路径
Dim a, b, c As Long
Dim sPath As String

sPath = Dir(Path & FileType) '查找第一个文件

Do While Len(sPath) '循环到没有文件为止
a = a + 1
ReDim Preserve Files(1 To a)
Files(a) = Path & sPath '将文件目录和文件名组合,并存放到数组中
List1.AddItem Files(a) '加入list控件中
sPath = Dir '查找下一个文件
DoEvents '让出控制权
Loop

sPath = Dir(Path & "\", vbDirectory) '查找第一个文件夹

Do While Len(sPath) '循环到没有文件夹为止
If Left(sPath, 1) <> "." Then '为了防止重复查找
If GetAttr(Path & "\" & sPath) And vbDirectory Then '如果是文件夹则。。。。。。
b = b + 1
ReDim Preserve Folder(1 To b)
Folder(b) = Path & sPath & "\" '将目录和文件夹名称组合形成新的目录,并存放到数组中
End If
End If
sPath = Dir '查找下一个文件夹
DoEvents '让出控制权
Loop

For c = 1 To b '使用递归方法,遍历所有目录
SearchFiles Folder(c), FileType
Next

End Function

Private Sub Command1_Click() '调用
SearchFiles "e:\", "*.exe"
End Sub

Ⅲ 请我如何c语言遍历文件夹

#include <windows.h>

/************************************************/
*参数说明:
char *pszDestPath为需要遍历的目标路径
/************************************************/

EnmuDirectory(char *pszDestPath)
{
//此结构说明参MSDN
WIN32_FIND_DATA FindFileData;
//查找文件的句柄
HANDLE hListFile;
//绝对路径,例:c:\windows\system32\cmd.exe
char szFullPath[MAX_PATH];
//相对路径
char szFilePath[MAX_PATH];
//构造相对路径
wsprintf(szFilePath, "%s\\*", pszDestPath);
//查找第一个文件,获得查找句柄,如果FindFirstFile返回INVALID_HANDLE_VALUE则返回
if((hListFile = FindFirstFile(szFilePath, &FindFileData)) == INVALID_HANDLE_VALUE)
{
//查找文件错误
return 1;
}
else
{
do
{
//过滤.和..
//“.”代表本级目录“..”代表父级目录
if( lstrcmp(FindFileData.cFileName, TEXT(".")) == 0 ||
lstrcmp(FindFileData.cFileName, TEXT("..")) == 0 )
{
continue;
}
//构造全路径
wsprintf(szFullPath, "%s\\%s", pszDestPath, FindFileData.cFileName);
//读取文件属性,如果不是文件夹
if(!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
//这里你可以自己添加分析是某种类型文件的代码。可以根据
//扩展名分析。

//这里有个实例,你可以看看

//有必要初始化一下
char *pszFileType = NULL;
//把pszFileType指向cFileName的倒数第三个数符。因为一般扩展名长为3个字符。
//当然,你也可以用其它方法分析扩展名。或倒序查“.”
pszFileType = &(FindFileData.cFileName[strlen(FindFileData.cFileName) - 3]);
//如果是jpg结尾的文件
if(!stricmp(pszFileType, "jpg"))
{
FILE *fp;
//或许这里打开C:\\data.txt不应该用"w+",你可试着来
fp = fopen("c:\\data.txt", "w+");
if(fp) fputs(szFullPath, fp);
fclose(fp);
}

}

//如果是文件夹,则递归调用EnmuDirectory函数
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
EnmuDirectory(szFullPath);
}
//循环,查找下一个文件
}while(FindNextFile(hListFile, &FindFileData));
}
//关闭句柄
FindClose(hListFile);
//清空结构。可有可无的一句代码。函数退出会自动清空。
ZeroMemory(&FindFileData, sizeof(FindFileData));
return 0;
}

这是windows api版的,还有MFC版的和C版的。要的话来找我Q:503267714

Ⅳ C/C++编程遍历文件夹,统计当前文件个数,输出文件名

这个要正对不同的操作系统,不同的操作系统,文件节点的存放方式不一样,读取的方式就不一样了。
可以利用for循环,像Linux
dir=opendir
(dirname)打开文件夹,返回目录指针,dp=readdir(dir)利用读目录,返回一行行读取目录的文件结构体指针,指针中存的有文件属性,是文件,还是文件夹。
通过判断是文件或者文件夹:
如果是文件,就就输出文件名dp->name
否则,就是一个文件夹
继续dir1=opendir(dp->name),dp1=readdir(dir1)..
一直循环到判断不到目录了。
windows应该也有类似的函数吧,这个我就么有用过了,你找找。

Ⅳ 关于遍历文件夹的C语言问题,急求,谢谢。

#include "dir.h"
#include "stdio.h"
/*
int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文件,成功
返回0
pathname为指定的目录名和文件名,如"C:\\WPS\\TXT"
ffblk为指定的保存文件信息的一个结构,定义如下:
┏━━━━━━━━━━━━━━━━━━┓
┃struct ffblk ┃
┃{ ┃
┃ char ff_reserved[21]; //DOS保留字┃
┃ char ff_attrib; //文件属性 ┃
┃ int ff_ftime; //文件时间 ┃
┃ int ff_fdate; //文件日期 ┃
┃ long ff_fsize; //文件长度 ┃
┃ char ff_name[13]; //文件名 ┃
┃} ┃
┗━━━━━━━━━━━━━━━━━━┛
attrib为文件属性,由以下字符代表
┏━━━━━━━━━┳━━━━━━━━┓
┃FA_RDONLY 只读文件┃FA_LABEL 卷标号┃
┃FA_HIDDEN 隐藏文件┃FA_DIREC 目录 ┃
┃FA_SYSTEM 系统文件┃FA_ARCH 档案 ┃
┗━━━━━━━━━┻━━━━━━━━┛
*/
size_t findFunc(void)
{
struct ffblk ff;
int flag=0;
int attrib=FA_DIREC;
size_t ct=0;
flag=findfirst("*",&ff,attrib);//返回0成功,-1失败
while(flag==0){
ct++;
...//你的处理函数
flag=findnext(&ff);//返回0成功,-1失败
}
return ct;
}

热点内容
linux头文件安装 发布:2025-01-24 18:02:46 浏览:416
fedora20内核编译 发布:2025-01-24 18:02:05 浏览:392
cvr网络存储 发布:2025-01-24 17:24:52 浏览:415
腿套压缩袜 发布:2025-01-24 17:05:16 浏览:458
电脑如何将安卓软件卸载干净 发布:2025-01-24 17:03:06 浏览:489
hello密码怎么破解 发布:2025-01-24 17:03:06 浏览:73
pspfifa无缓存 发布:2025-01-24 16:45:13 浏览:165
androidhandler机制 发布:2025-01-24 16:41:10 浏览:936
安卓系统如何下载aov 发布:2025-01-24 16:29:53 浏览:573
iptables允许ip访问 发布:2025-01-24 16:19:58 浏览:932