如何从 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++ 应用程序中删除文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何编写 C++ 控制台窗口程序

C++中如何实现子进程打开控制台窗口

如何从 Windows 控制台调用 .exe (C++) 以在不同目录(或任何目录)中创建文件夹?

如何避免不必要的控制台窗口

如何将控制台窗口的大小调整为设定的行数和列数?

如何在 Visual Studio C++ 中使用代码关闭控制台窗口