当前位置:  开发笔记 > 编程语言 > 正文

删除临时目录

如何解决《删除临时目录》经验,为你挑选了2个好方法。

我有这个代码,

showmessage('C:\TEMP\'+openfiles[openfilelist.ItemIndex].ID);
if removedir('C:\TEMP\'+openfiles[openfilelist.ItemIndex].ID) then
  showmessage('Removed')
else
  showmessage('Failed');

消息显示C:\TEMP\0并且该目录确实存在,因为程序先前创建它并使用其中的文件然后删除它们.我可以看到文件和目录,所以我知道他们在那里.程序成功删除文件但不删除目录.

如果我对其工作的目录进行硬编码 - 这意味着它接受字符串 C:\TEMP\0但不接受C:\TEMP\'+openfiles[openfilelist.ItemIndex].ID两者等同于C:\TEMP\0.我无法对这些目录进行硬编码,所以我该怎么办?如何从字符串+字符串转换removedir()为期望的字符串.我仔细研究了Delphi的基础知识,并期待一个字符串.

我很困惑,因为string + string = string.到底是怎么回事?



1> mghie..:

确保您的程序或任何其他程序都没有将该目录作为其当前工作目录.当您重新编译程序时,可能不再是这种情况,因此硬编码值对您来说可能是一个红色的鲱鱼.



2> Craig Stuntz..:

除了其他好的答案之外,您不应该将您的临时文件夹存储在C:\ TEMP中.请改用GetTempFilename返回的值.与C:\ TEMP不同,此位置(因操作系统而异)将适用于所有操作系统以及所有级别的用户访问控制.这也消除了您硬编码的位置也可能被硬编码到另一个系统中的风险.

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有