【问题标题】:Creating a temporary folder in tmp folder on OS X在 OS X 上的 tmp 文件夹中创建一个临时文件夹
【发布时间】:2010-06-10 13:26:31
【问题描述】:

如何使用 C++ 语言在 tmp 文件夹中创建一个临时文件夹。

我有 3 卷。 Leopard、Development 和 10.6(在 Mac OS X 中),我想在当前主目录中创建一个临时目录。

这是我的代码。我对这条线感到困惑char* tempdir = "/Volumes/Development/NewFolder.XXXXXX"

if (!mkdtemp(tempdir)) 

   fprintf(stderr, "Not able to create directory"); 

【问题讨论】:

标签: c macos


【解决方案1】:

在 POSIX 下,您可以使用 mkdtemp 创建一个具有唯一名称的目录。在 Windows 上,使用 GetTempPath 检索临时目录的名称,然后在其中创建一个随机名称的目录。

【讨论】:

  • 没有比这更简单的了 :)
  • @iSight,没问题,虽然你用的不是我的昵称。总有一天,卡梅伦会感受到我的愤怒。
  • 这是我的代码,但显示错误。实际上,我有 3 卷。 Leopard、Development 和 10.6(在 Mac OS X 中),我想在当前主目录中创建一个临时目录。这是我的代码,//我对这一行感到困惑 char* tempdir = "/Volumes/Development/NewFolder.XXXXXX"; if (!mkdtemp(tempdir)) { fprintf(stderr, "无法创建目录"); }
【解决方案2】:

您可以使用boost::Filesystem library函数:create_directory( "temp" );

这是非常便携的,可以在大多数操作系统下工作。

Boost can be downloaded here.

【讨论】:

  • +1...这就是为什么 OP 需要澄清正在使用的语言。
【解决方案3】:

Boost 是一个很好的选择,但是 boost 的一个问题是你可能会下载大量的源文件——如果你需要的只是文件系统功能,这有点过头了。试试http://stlplus.sourceforge.net/stlplus3/docs/file_system.html

你为什么不直接使用旧的 system() 函数呢?系统的字符串参数当然是平台相关的。

阿潘

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-29
    • 2016-06-30
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    相关资源
    最近更新 更多