关于如何删除目录的问题(100分)

P

plzw

Unregistered / Unconfirmed
GUEST, unregistred user!
拟用于定时实现删除windows下Temp、Temporary Internet Files及Cookies文件夹里的垃圾文件。
delphi中只有删除空文件夹的func,所以我试着用以下程序实现:
function DelFiles (path:string):boolean;
var searchRec:TsearchRec;
begin
if DirectoryExists(path) then
begin
chDir(path);
FindFirst('*.*',faAnyFile,SearchRec);
repeat
FileSetAttr(SearchRec.Name,0);
if (SearchRec.Attr and faDirectory > 0) then
begin
if (SearchRec.Name[1] <> '.') then
if (not DelFiles(SearchRec.Name)) then
break;
end
else
if (not DeleteFile(SearchRec.Name)) then
break;
until(FindNext(SearchRec) <> 0);
chDir('..');
Result:=RemoveDir(Path);
end
else
Result:=False;
end;
但是由于以上目录里有一些文件无法删除。
请教好的方法。
Thx~~
 
这不是你的问题
Windows临时目录下的文件有的是被应用程序打开的,此时你是无法删除它的
无论是用程序还是用Explorer中。
 
楼上说的对。的确没有什么好办法!
 
其实你用SHFileOperation这个API就可以删除非空目录了。。。
当然,它也不能删除那些不能被删除的文件。。。
 
SHFileOpertaion具体怎么用?
我用自己做的func的时候,因为不是非空目录,所以除了不能删除的文件以外,一些可以手动删除的文件用我的func也删不掉了。
另外顺便问一句啊,如何用listbox列出注册表中某一主键下的所有字符串值?
 
怎么用去看MSDN。
你都这么写了
if (not DeleteFile(SearchRec.Name)) then
break;
遇到不能删除的自然函数就退出了,不会接着继续删了啊
 
给分了...
 
顶部