在mac上打开带有unicode名称的文件

时间:2012-03-29 11:14:24

标签: macos qt unicode

我有一个QT C ++应用程序,我使用xcode 4.2在MAC OS 10.6上编译。 应用程序尝试使用fopen()和stat()访问文件。 应用程序打包在一个捆绑包中,其中包含运行所需的所有qt库。

如果我通过双击捆绑包来运行应用程序,则无法访问带有希伯来语的文件 名。看着errno之后我看到它无法找到文件。

如果我通过单击“显示包内容”打开包并在里面运行可执行文件,一切正常。我设法用希伯来名字打开文件没有问题。

我确保通过运行“ps -ef”

在两种情况下运行相同的可执行文件

我对mac开发很新,所以我可能会遗漏一些非常基本的东西。

任何想法可能是什么问题?为什么运行bundle和可执行文件之间有区别?

编辑: 这是失败代码的示例:

int osalGetFileSize(const char *rpFile, unsigned long long *rpFileSize){

struct stat objFileState;

if (0 == stat(rpFile, &objFileState) )
{
    LOGG_INFO("osalGetFileSize(): managed to open file");
    if (true == S_ISREG(objFileState.st_mode)) //is it a regular file?
    {
        LOGG_INFO("osalGetFileSize(): S_ISREG is true");
        *rpFileSize = objFileState.st_size;
        return OK;
    }
}
LOGG_INFO("osalGetFileSize():last error: %s", strerror( errno));
return NOK;

}

运行应用程序时,stat返回-1并且errno = 2。 在运行可执行文件时,一切都很成功。

有一个类似的函数运行fopen,它也接受“const char * rpFile”。

0 个答案:

没有答案