急!!!!如何删除一个文件夹下的所有文件
我在C:\abc下有若干文件,个数不确定,请问有什么方法可以将这个文件夹下面的所有文件都删除呢?我用过deltree和RemovDir都不行,因为这两个都要求文件夹下没有文件,并且是删除目录。 问题点数:50、回复次数:6Top
1 楼samchoy(老蔡)回复于 2005-03-09 20:35:55 得分 20
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
TSearchRec sr;
AnsiString Path = "c:\\abc\\";
if (FindFirst(Path+"*.*", faArchive, sr) == 0)
{
do
{
if ((sr.Attr & faArchive) == sr.Attr)
{
DeleteFile(Path+sr.Name);
}
} while (FindNext(sr) == 0);
FindClose(sr);
}
}
Top
2 楼bashendan(八神丹)回复于 2005-03-09 20:52:29 得分 0
谢谢samchoy,用你的代码可以解决我的问题了,我还想在多问一个问题,如果这个文件夹下面的文件有只读属性或者隐藏属性,我该怎么解决呢Top
3 楼magicsnake(北极狐)回复于 2005-03-09 21:20:24 得分 0
用FileSetAttr()重新设置属性Top
4 楼Behard(我爱天安门)回复于 2005-03-09 21:37:36 得分 0
使用 SHFileOperation 函数Top
5 楼Behard(我爱天安门)回复于 2005-03-09 21:46:15 得分 30
#include <shellapi.h>
void __fastcall TfrmMain::Button1Click(TObject *Sender)
{
SHFILEOPSTRUCT FileOp;
char fPath[MAX_PATH];
memset ( &FileOp, 0, sizeof(FileOp) );
memset ( fPath, 0, sizeof(fPath) );
FileOp.wFunc = FO_DELETE ;
strcpy ( fPath, "C:\\abc\\*" );
FileOp.pFrom = fPath;
FileOp.pTo = NULL;
if ( ! SHFileOperation ( &FileOp ) ) ShowMessage ( "success!" );
else ShowMessage ( "Failed!" );
}Top
6 楼bashendan(八神丹)回复于 2005-03-09 22:32:19 得分 0
多谢大家,我已经明白了如何解决我的问题了,呵呵Top




