社区
C++ Builder
帖子详情
关于遍历(枚举)的一个问题~~~~~~请进来赐教。
LngDotin
2006-06-30 08:58:48
这是一个老掉牙的问题,可是对于我来说是头一次做。
问题:一个文件夹下,既有文件,又有子文件夹,如何遍历出该文件夹下的所有文件和所有子文件夹下的所有文件?请高手留下宝贵的源码,以供参详。谢谢。
...全文
168
5
打赏
收藏
关于遍历(枚举)的一个问题~~~~~~请进来赐教。
这是一个老掉牙的问题,可是对于我来说是头一次做。 问题:一个文件夹下,既有文件,又有子文件夹,如何遍历出该文件夹下的所有文件和所有子文件夹下的所有文件?请高手留下宝贵的源码,以供参详。谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ly_liuyang
2006-06-30
打赏
举报
回复
递归算法嘛
BlueDeepOcean
2006-06-30
打赏
举报
回复
另一个函数:
bool DeleteDirTree(AnsiString filePath)
{
bool retVal =true;
AnsiString fileName;
WIN32_FIND_DATA foundFile;
HANDLE hFile = FindFirstFile((filePath+"\\*.*").c_str(),&foundFile);
if(hFile != INVALID_HANDLE_VALUE)
{
do
{
if(strcmp(foundFile.cFileName,".")!=0 && strcmp(foundFile.cFileName,"..")!=0)
{
fileName = filePath + "\\" + foundFile.cFileName;
if((foundFile.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)!=0)
{
DeleteDirTree(fileName.c_str());
RemoveDirectory(fileName.c_str());
}
else
{
FileSetAttr(fileName, FileGetAttr(fileName) & !faReadOnly);
DeleteFile(fileName.c_str());
}
}
}
while(FindNextFile(hFile,&foundFile)!=0);
}
FindClose(hFile);
return retVal;
}
samchoy
2006-06-30
打赏
举报
回复
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
AnsiString Path = Edit1->Text;
if (Path == "")
Path = ExtractFilePath(Application->ExeName);
ListBox1->Clear();
GetFiles(Path);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::GetFiles(AnsiString Path)
{
TSearchRec sr;
if (Path[Path.Length()] != '\\')
Path += "\\";
if (FindFirst(Path+"*.*", faArchive|faDirectory, sr) == 0)
{
do
{
if (sr.Attr == faArchive) // 文件
{
ListBox1->Items->Add(sr.Name);
}
else if (sr.Attr == faDirectory) // 目录以 <目录名> 表示
{
if (sr.Name != "." && sr.Name != "..")
{
ListBox1->Items->Add("<"+sr.Name+">");
GetFiles(Path+sr.Name); // 递归调用
}
}
} while (FindNext(sr) == 0);
FindClose(sr);
}
}
BlueDeepOcean
2006-06-30
打赏
举报
回复
比如D盘下面A文件夹下面的所有文件:
TSearchRec sr;
TStringList *sl = new TStringList;
if (FindFirst(D:\\A\\*.*", faArchive, sr) == 0)
{
do
{
if (sr.Attr == faArchive)
sl->Add(sr.Name);
} while (FindNext(sr) == 0);
FindClose(sr);
}
for (int i = 0;i < sl->Count;i ++)
DeleteFile(sl->Strings[i]);
lexchou
2006-06-30
打赏
举报
回复
dir /a /s
C语言实现中序线索化二叉树并
遍历
#include #include #include #include #define OK 1 #define ERROR 0 using namespace std; ... //声明
枚举
,Link == 0:指针,Thread == 1:线索 typedef char TElemType; typedef int Status
枚举
Android系统的进程、任务和服务的信息
一、简介 ...机管理软件的都很NX,于是自己也想实现
一个
很小的功能,比如:
枚举
Android系统中进程Process、任务Task和服务Service的信息。 首先在网上收集资料,想了解一下大N 们是如何编写这类...
C++笔试题目大全
单向链表的反转是
一个
经常被问到的
一个
面试题,也是
一个
非常基础的
问题
。比如
一个
链表是 这 样的: 1->2->3->4->5 通过反转后成为 5->4->3->2->1 。 最容易想到的方法
遍历
一遍链表,利用
一个
辅助指针,存储
遍历
...
浅谈我对动态规划的一点理解---大家准备好小板凳,我要开始吹牛皮了~~~
作为
一个
退役狗跟大家扯这些东西,感觉确实有点。。。但是,针对网上没有一篇文章能够很详细的把动态规划
问题
说明的很清楚,我决定还是拿出我的全部家当,来跟大家分享我对动态规划的理解,我会尽可能的把所遇到的...
C# 获取多线程ID
【文章标题】: 乱涂C#多...失误之处敬请诸位大侠
赐教
! 【详细过程】 采用线程池线程执行任务我们无法直接控制线程.有时我们想直接控制线程的行为,那么我们可以创建非线程池线程. // ThreadDemo.cs // Aut...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章