我无法将文件删除到回收站.
VAR SHFileOpStruct: TSHFileOpStruct;
begin
with SHFileOpStruct do
begin
wnd := Handle;
wFunc := FO_DELETE;
pFrom := PChar(FileName);
fFlags:= 0;
pTo := NIL;
hNameMappings:= NIL;
lpszProgressTitle:= NIL;
end;
Result:= SHFileOperation(SHFileOpStruct);
end;
Run Code Online (Sandbox Code Playgroud)
我可以删除这种格式的文件:'1.xyz'但不是这种格式'12 .xyz'(文件名超过1个字符).
Lar*_*ens 10
根据SHFileOperation的文档,您不应该使用GetLastError来查看操作是否成功.检查函数的结果并使用文档来确定它返回的错误.这应该会让你更好地了解问题所在.
编辑:
阅读文档时最好的猜测:
pFrom中
尽管此成员被声明为单个以null结尾的字符串,但它实际上是一个可以容纳多个以null分隔的文件名的缓冲区.每个文件名都由一个NULL字符终止.最后一个文件名以双NULL字符("\ 0\0")结束,表示缓冲区的结束
因此,您应该确保pFrom以双精度0结束.请尝试以下操作
pFrom := PChar(FileName + #0);
Run Code Online (Sandbox Code Playgroud)
另外,你使用的是什么Delphi版本?
EDIT2:
还要确保将结构正确初始化为0.取消注释FillChar
| 归档时间: |
|
| 查看次数: |
1534 次 |
| 最近记录: |