【发布时间】:2012-10-22 09:45:38
【问题描述】:
我的程序使用此代码删除其临时文件夹:
// ...
if (!RemoveDirectory(L"C:\\MyTemp"))
return false;
if (!CreateDirectory(L"C:\\MyTemp", NULL))
return false;
else
return true;
// ...
但是,实际上我必须删除 temp 的内容(其中的子文件夹和文件),并且在删除某些文件时程序可能正在使用这些文件。如何以更好的形式编写此代码?我很感激你的小代码示例。
【问题讨论】:
-
如果您的程序使用文件并且您尝试删除它们,我认为您的架构存在严重问题。
-
顺便说一句:假设每个人的分区都映射到他们的根驱动器是 C: 的位置并不总是好的。例如,我的 XP 分区是 D:,我的 Win 7 分区是 E:,我的 C: 盘是额外空间。所以为我运行这个程序不会按照指示进行。
-
@alestanis:除非代码最初是为 Posix 编写的,在这种情况下,在使用文件时删除文件是可行的,有时是完全合理的。在 Posix 上“删除”文件只是取消链接文件的一个名称,因此其他名称和具有打开文件处理程序的程序根本不会受到影响。
-
@alestanis:程序有多个临时文件,它必须删除不使用的文件。 M4rc:为学习目的而自行编程,目前我的电脑中有“C:\\MyTemp”!感谢您的理解。伙计们,我只想删除这些文件!
标签: c++ visual-studio-2008 delete-file directory