如何从 Windows 中没有控制台窗口的 C++ 应用程序中删除文件?
Posted
技术标签:
【中文标题】如何从 Windows 中没有控制台窗口的 C++ 应用程序中删除文件?【英文标题】:How to delete a file from a C++ app without console window in Windows? 【发布时间】:2008-12-22 15:44:49 【问题描述】:我需要从我的 C++ windows 应用程序(在 Borland C++ Builder 中开发)中删除一个临时文件。目前我使用一个简单的:
system("del tempfile.tmp");
这会导致控制台窗口在我的应用程序前面闪烁,并且看起来不太专业。在没有控制台窗口的情况下如何执行此操作?
【问题讨论】:
【参考方案1】:或者,甚至是标准 C 库函数int remove( const char *path );
。
【讨论】:
【参考方案2】:听起来您需要 Win32 函数 DeleteFile()。您需要#include <windows.h>
才能使用它。
【讨论】:
由于标准的 remove() 函数执行相同的任务并且是标准的一部分,我会投票支持它而不是 windows 函数。 很公平。我认为这取决于其余代码的风格。如果你在其他地方使用 Win32 函数,那么坚持使用 DeleteFile() 会更清楚。由于最初的问题包括非常特定于 Windows 的系统调用,因此我建议将 DeleteFile() 作为更适合 Windows 的解决方案。【参考方案3】:为了更便于移植(即在 Windows 和 UNIX 中都可以使用),我在 io.h 中使用 unlink() 或符合 ISO 标准的 _unlink()(UNIX 的 unlink() 包括 unistd.h) Remove() 实际上调用了 _unlink()。
【讨论】:
以上是关于如何从 Windows 中没有控制台窗口的 C++ 应用程序中删除文件?的主要内容,如果未能解决你的问题,请参考以下文章