【问题标题】:How to delete a file from a C++ app without console window in Windows?如何从 Windows 中没有控制台窗口的 C++ 应用程序中删除文件?
【发布时间】:2008-12-22 15:44:49
【问题描述】:

我需要从我的 C++ windows 应用程序(在 Borland C++ Builder 中开发)中删除一个临时文件。目前我使用一个简单的:

system("del tempfile.tmp");

这会导致控制台窗口在我的应用程序前面闪烁,并且看起来不太专业。在没有控制台窗口的情况下如何执行此操作?

【问题讨论】:

    标签: c++ windows winapi file-io


    【解决方案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()。

      【讨论】:

        猜你喜欢
        • 2018-01-15
        • 2022-08-22
        • 1970-01-01
        • 1970-01-01
        • 2011-01-20
        • 2019-01-18
        • 2011-04-20
        • 2014-02-17
        相关资源
        最近更新 更多