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

Not able to create temp file in the desired directory

本文关键字:创建 临时文件      更新时间:2023-10-16

我需要在MAC上的指定文件夹中创建一个临时文件。但是,我可以在正确的位置创建文件夹,但无法在其中创建文件。我收到一个错误,说它没有创建文件的权限,尽管我在创建文件夹时已通过 777 作为文件权限。请在下面找到我的代码。我想提一下,这个问题只在MAC上。在窗口上,它按预期执行。请让我知道问题是什么。

    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

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

为什么不用Macintosh上真正可写的路径替换"SeeWorkingDir()",比如"/tmp/"目录?

你还没有解释你的函数 SeeWorkingDir() 是做什么的。

也许您应该使用 wxFileName::GetTempDir 来指定存储文件的目录。这应该是独立于平台的。

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

请参阅文档:wxWidgets 2.8.12 - wx文件名