无法在所需目录中创建临时文件

时间:2012-05-25 10:19:19

标签: c++ macos file-permissions

我需要在MAC上的指定文件夹中创建临时文件。但是,我能够在正确的位置创建文件夹,但无法在其中创建文件。我收到一条错误,说它没有创建文件的权限,尽管我在创建文件夹时已经将777作为文件权限通过了。请在下面找到我的代码。我想提一下,这个问题只出现在MAC上。在Windows上,它按预期执行。请告诉我这是什么问题。

    wxString curDir = SeeWorkingDir() + wxT("Temp\\"); //Gets the working directory

    if(!wxFileName::DirExists(curDir)) //Checks if directory exists
    wxFileName::Mkdir( curDir, 0777, wxPATH_MKDIR_FULL ); // creates the directory

    wxString jobcopy = wxFileName::CreateTempFileName(curDir); // should create temp file

2 个答案:

答案 0 :(得分:1)

我完全不知道你的“SeeWorkingDir()”函数返回了什么,但如果它返回了应用程序目录,那么你就不应该在那里写任何东西了。

为什么不将“SeeWorkingDir()”替换为Macintosh上真正可写的路径,例如“/tmp/”目录?

答案 1 :(得分:0)

您尚未解释SeeWorkingDir()的功能。

也许您应该使用wxFileName::GetTempDir来指定存储文件的目录。这应该与平台无关。

或者,在你的调用wxFileName :: CreateTempFileName(curDir)中,你可以指定fileTemp参数来直接打开文件。

参见文档: wxWidgets 2.8.12 - wxFileName