0

我需要在 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
4

2 回答 2

1

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

为什么不将 " " 替换为 Macintosh 上真正可写SeeWorkingDir()的某个位置的路径,例如 " " 目录?/tmp/

于 2012-05-25T10:22:17.943 回答
0

您还没有解释您的函数 SeeWorkingDir() 的作用。

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

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

请参阅文档: wxWidgets 2.8.12 - wxFileName

于 2012-06-03T12:49:14.703 回答