我需要在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
答案 0 :(得分:1)
我完全不知道你的“SeeWorkingDir()
”函数返回了什么,但如果它返回了应用程序目录,那么你就不应该在那里写任何东西了。
为什么不将“SeeWorkingDir()
”替换为Macintosh上真正可写的路径,例如“/tmp/
”目录?
答案 1 :(得分:0)
您尚未解释SeeWorkingDir()的功能。
也许您应该使用wxFileName::GetTempDir
来指定存储文件的目录。这应该与平台无关。
或者,在你的调用wxFileName :: CreateTempFileName(curDir)中,你可以指定fileTemp
参数来直接打开文件。