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

也就是说挑选文件夹中符合要求的文件名,实现复制到另外的文件夹中... 也就是说挑选文件夹中符合要求的文件名,实现复制到另外的文件夹中 展开
 我来答
手机用户68902
2011-03-07 · TA获得超过108个赞
知道答主
回答量:254
采纳率:0%
帮助的人:178万
展开全部
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的
小八79
2011-03-06 · TA获得超过504个赞
知道小有建树答主
回答量:360
采纳率:0%
帮助的人:264万
展开全部
使用 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。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mr_shj
推荐于2016-12-03 · TA获得超过2682个赞
知道大有可为答主
回答量:1665
采纳率:94%
帮助的人:1389万
展开全部
<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>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Juncox
2011-03-06 · TA获得超过1638个赞
知道大有可为答主
回答量:1904
采纳率:0%
帮助的人:1600万
展开全部
本想写一个,后在百度上搜了一下,还真不少,就给你列出吧。
关于文件夹遍历的问题(有TC/VC两个版本)
http://fwq.web521.com/host/P575/A0748862.shtml

如何在VC中遍历指定文件夹并删除文件名相同而扩展名不同的文件
http://hi.baidu.com/stormsxf/blog/item/94798b24456695024d088d29.html
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gcc2012
2011-03-10 · TA获得超过244个赞
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:92.6万
展开全部
LZ留个邮箱吧,我有一个文件夹复制的程序,应该对你有帮助
更多追问追答
追问
hlwei83@126.com,不管结果如何先谢谢了,现在vc++的我已经解决了,希望可以得到纯c的!麻烦你了,呵呵!!
追答
已发
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式