社区
C++ Builder
帖子详情
关于遍历(枚举)的一个问题~~~~~~请进来赐教。
LngDotin
2006-06-30 08:58:48
这是一个老掉牙的问题,可是对于我来说是头一次做。
问题:一个文件夹下,既有文件,又有子文件夹,如何遍历出该文件夹下的所有文件和所有子文件夹下的所有文件?请高手留下宝贵的源码,以供参详。谢谢。
...全文
212
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
39 C 语言
枚举
类型、
枚举
常量、
枚举
变量、
枚举
的
遍历
、
枚举
数组、
枚举
与 switch
本文围绕C语言中的
枚举
类型展开,介绍了
枚举
是一种用户自定义数据类型,用于定义一组相关常量。详细讲解了
枚举
类型的定义、
枚举
变量的多种定义方式,还阐述了
枚举
的
遍历
方法,包括连续和非连续
枚举
常量的
遍历
,以及
枚举
在switch中的使用和
枚举
数组的相关内容。
Java
遍历
枚举
值
本文介绍了多种
遍历
Java
枚举
的方法,包括使用for循环、流(Stream)、forEach、EnumSet及
枚举
类型的ArrayList等,并提供了示例代码,展示了如何过滤特定
枚举
值。
C#
遍历
枚举
本文介绍了如何
遍历
C#中的
枚举
,包括使用Enum.GetNames方法及其性能
问题
。推荐使用Enums.NET库来提高性能,并提供了相关代码示例。此外,博主分享了个人博客及dotnet职业技术学院,欢迎大家访问交流。
Qt
遍历
一个
枚举
类型里面的内容
本文介绍如何使用Qt元对象特性进行
枚举
与字符串的相互转换,并提供了
遍历
枚举
成员的方法。文中详细展示了QMetaEnum类的用法,包括通过
枚举
下标或值获取字符串、将字符串转换为
枚举
值,以及
遍历
所有
枚举
成员。
枚举
的
遍历
本文深入探讨了Java中
枚举
的概念及应用,介绍了
枚举
作为特殊类的特点,包括
枚举
常量、方法定义、成员变量使用等。同时展示了如何在实际编程中通过具体示例运用
枚举
,例如
枚举
的
遍历
和查找。
C++ Builder
13,874
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章