自 编 删 除 目 录 及 其 下 属 文 件 的 函 数

BOOL DeleteTree(CString DirName)

{ //成功:返回TRUE;否则,返回FALSE

BOOL Result;

Result=PreRemoveDirectory(DirName)

      && RemoveDirectory(DirName);

return Result;

}

BOOL PreRemoveDirectory(CString DirName)

{//成功:返回TRUE;否则,返回FALSE

LPTSTR lpBuffer;

UINT uSize;

CString fileName;

HANDLE hHeap;

BOOL result;

HANDLE hFindFile;

WIN32_FIND_DATA FindFileData;

uSize=(GetCurrentDirectory(0,NULL))*sizeof(TCHAR);

hHeap=GetProcessHeap();

lpBuffer=(LPSTR)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,uSize);

GetCurrentDirectory(uSize,lpBuffer);

if (lpBuffer!=DirName) {//调整当前目录

SetCurrentDirectory(DirName);

}

hFindFile=FindFirstFile("*.*",&FindFileData);

CString tFile;

if (hFindFile!=INVALID_HANDLE_VALUE) {

do {

tFile=FindFileData.cFileName;

if ((tFile==".")||(tFile=="..")) continue;

if (FindFileData.dwFileAttributes==

              FILE_ATTRIBUTE_DIRECTORY){

if (DirName[DirName.GetLength()-1]!='//')

PreRemoveDirectory(DirName+'//'+tFile);

else

PreRemoveDirectory(DirName+tFile);

if (!RemoveDirectory(tFile))

result=FALSE;

else

result=TRUE;

}

else

if (!DeleteFile(tFile)) result=FALSE;

else result=TRUE;

}

while (FindNextFile(hFindFile,&FindFileData));

FindClose(hFindFile);

}

else {

SetCurrentDirectory(lpBuffer);

return FALSE;

}

SetCurrentDirectory(lpBuffer); //回复到原来的目录下

return result;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值