C++Builder怎么删除文件?

stm32f100 2009-03-11 05:27:53

1.怎么删除一个文件夹以及里面所有文件?
2.怎么删除一个文件夹以及里面所有后缀名是.x的文件?
...全文
471 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fairchild811 2009-03-11
  • 打赏
  • 举报
回复
楼上正解,删除文件用DeleteFile,删除文件夹用RemoveDirectory
BORLANDSUN 2009-03-11
  • 打赏
  • 举报
回复
要删除一个文件夹,必须首先删除这个文件夹内的所有文件.如果一个文件夹带子文件夹的话,必须通过递归的方法删除.
删除文件夹的代码:

bool DeleteDirectroyEx(String P)
{
if(P.IsEmpty() || P.Length() < 4)
{
return false;
}
int len = P.Length();
char *Path = P.c_str();
AnsiString Dir = Path;
if(Path[len-1] != '\\')
{
Dir = Dir+'\\';
}
AnsiString Files = Dir + "*.*";
WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile(Files.c_str(), &wfd);
bool Ret = true;
AnsiString Tmp;
if(hFind != INVALID_HANDLE_VALUE)
{
bool bFind=true;
while(bFind)
{
if(wfd.cFileName[0] != '.')
{
Tmp = Dir + wfd.cFileName;
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
Ret = Ret && DeleteDirectroyEx(Tmp.c_str());
}
else
{
SetFileAttributes(Tmp.c_str(), FILE_ATTRIBUTE_NORMAL);
Ret = Ret && DeleteFile(Tmp.c_str());
}
}
bFind = FindNextFile(hFind, &wfd);
}
FindClose(hFind);
}
if(Ret)
{
return RemoveDirectory(Path);
}
return false;
}

要删除一个文件夹面所有后缀名是.x的文件,关键是找出该文件夹下后缀为.x的文件,之后就可以用DeleteFile函数删除之.楼主可参考上边的代码做修改即可.
stm32f100 2009-03-11
  • 打赏
  • 举报
回复
问题更正:

1.怎么删除一个文件夹(包含里面所有子文件夹和文件)?

2.怎么删除一个文件夹面所有后缀名是.x的文件?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧