当回收箱满足时,Shfileoperation会做什么?
-
19-09-2019 - |
题
我使用此过程:
function MoveToRecycle(sFileName: widestring): Boolean;
var
fos: TSHFileOpStructW;
begin
FillChar(fos, SizeOf(fos), 0);
with fos do
begin
wnd := 0;
wFunc := FO_DELETE;
pFrom := PWideChar(sFileName + #0 + #0);
pTo := #0 + #0;
fFlags := FOF_FILESONLY or FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_SILENT;
end;
Result := (ShFileOperationW(fos) = 0);
end;
如果回收箱已满,它会永久返回false或删除文件,会发生什么?
任何帮助,将不胜感激。
解决方案
找出答案的最好方法是实际做到这一点。使我的回收箱至少占驱动器的1%。创建了一堆大文件,并使用您的功能将其移动以回收垃圾箱。
我发现(无论如何在XP上)发现该函数总是将其移至回收箱。但是删除最古老的删除文件。因此,当回收箱填充它时,它会使用“首先 - 首先”类型的方法来决定要启动哪个文件。
我无法使函数返回false。也许可以为分配的回收箱创建一个太大的文件。
不隶属于 StackOverflow