我有这个代码,
showmessage('C:\TEMP\'+openfiles[openfilelist.ItemIndex].ID);
if removedir('C:\TEMP\'+openfiles[openfilelist.ItemIndex].ID) then
showmessage('Removed')
else
showmessage('Failed');
Run Code Online (Sandbox Code Playgroud)
消息显示C:\TEMP\0并且该目录确实存在,因为程序先前创建它并使用其中的文件然后删除它们.我可以看到文件和目录,所以我知道他们在那里.程序成功删除文件但不删除目录.
如果我对其工作的目录进行硬编码 - 这意味着它接受字符串
C:\TEMP\0但不接受C:\TEMP\'+openfiles[openfilelist.ItemIndex].ID两者等同于C:\TEMP\0.我无法对这些目录进行硬编码,所以我该怎么办?如何从字符串+字符串转换removedir()为期望的字符串.我仔细研究了Delphi的基础知识,并期待一个字符串.
我很困惑,因为string + string = string.到底是怎么回事?
除了其他好的答案之外,您不应该将您的临时文件夹存储在C:\ TEMP中.请改用GetTempFilename返回的值.与C:\ TEMP不同,此位置(因操作系统而异)将适用于所有操作系统以及所有级别的用户访问控制.这也消除了您硬编码的位置也可能被硬编码到另一个系统中的风险.
| 归档时间: |
|
| 查看次数: |
2027 次 |
| 最近记录: |