C语言:如何遍历指定的文件夹(可以包括子文件夹)中的每一个文件名
发布网友
发布时间:2022-04-26 15:19
我来回答
共5个回答
热心网友
时间:2022-05-03 08:10
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语言的,谢谢你,但是这不是我需要的!c的关键字中不会出现loop、end的
热心网友
时间:2022-05-03 09:28
使用 readdir函数 可以获取文件名追问需要加那个对应的头文件呢?还是可以直接使用
追答表头文件 #include
#include
定义函数 struct dirent * readdir(DIR * dir);
函数说明 readdir()返回参数dir目录流的下个目录进入点。
结构dirent定义如下
struct dirent
{
ino_t d_ino;
ff_t d_off;
signed short int d_reclen;
unsigned char d_type;
har d_name[256;
};
d_ino 此目录进入点的inode
d_off 目录文件开头至此目录进入点的位移
d_reclen _name的长度,不包含NULL字符
d_type d_name 所指的文件类型
d_name 文件名
返回值 成功则返回下个目录进入点。有错误发生或读取到目录文件尾则返回NULL。
热心网友
时间:2022-05-03 11:03
<html>
<head>
</head>
<body>
<%
dim myfilename()
redim myfilename(0)
set fs=Server.CreateObject("Scripting.FileSystemObject")
sub showfile(thefolder)
set fd=fs.getfolder(thefolder)
for each myfile in fd.files
i=ubound(myfilename)
myfilename(i)=fd.path & "\" & myfile.name
redim Preserve myfilename(i+1)
next
for each myfolder in fd.SubFolders '递归记录其它文件夹的文件
call showfile(fd.path & "\" & myfolder.name)
next
end sub
thefolder="e:\lzweb" '在此指定要搜索的文件夹绝对路径,要确定匿名用户有访问的权限,否则会出错
call showfile(thefolder) '过程调用后,查到的文件名包括路径名保存在myfilename数组,
'共ubound(myfilename)个,下标分布在0至ubound(myfilename)-1;
'以下示例把找到文件显示出来
response.write("共找到" & ubound(myfilename) & "个文件<br>")
for i=0 to ubound(myfilename)-1
response.write(i+1 & "--" & myfilename(i) & "<br>")
next
%>
</body>
</html>
热心网友
时间:2022-05-03 12:54
本想写一个,后在百度上搜了一下,还真不少,就给你列出吧。
关于文件夹遍历的问题(有TC/VC两个版本)
http://fwq.web521.com/host/P575/A0748862.shtml
如何在VC中遍历指定文件夹并删除文件名相同而扩展名不同的文件
http://hi.baidu.com/stormsxf/blog/item/94798b24456695024d088d29.html
热心网友
时间:2022-05-03 15:02
LZ留个邮箱吧,我有一个文件夹复制的程序,应该对你有帮助