gpt4 book ai didi

delphi - 我无法将文件删除到回收站

转载 作者:行者123 更新时间:2023-12-03 15:18:04 25 4
gpt4 key购买 nike

我无法将文件删除到回收站。

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;

我可以删除“1.xyz”格式的文件,但不能删除“12.xyz”格式的文件(文件名长度超过 1 个字符)。

最佳答案

根据the documentation of SHFileOperation您不应该使用 GetLastError 来查看操作是否成功。检查函数的结果并使用文档找出它返回的错误。这应该可以让您更好地了解问题所在。

编辑:

阅读文档的最佳猜测:

pFrom

Although this member is declared as a single null-terminated string, it is actually a buffer that can hold multiple null-delimited file names. Each file name is terminated by a single NULL character. The last file name is terminated with a double NULL character ("\0\0") to indicate the end of the buffer

所以你应该确保 pFrom 以双 0 结尾。尝试以下操作

pFrom := PChar(FileName + #0);

另外,您使用的 Delphi 版本是什么?

编辑2:

还要确保结构正确初始化为 0。取消注释 FillChar

关于delphi - 我无法将文件删除到回收站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6332259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com