QLockFile tryLock()无法使用非英语路径

我正在用linedit编写应用程序,用户可以在其中粘贴(或通过浏览器对话框选择)其文件的位置,以供进一步使用。 因此,我有一个路径的QString和一堆检查(并且所有检查都成功通过,并且在粘贴时肯定是可读取的,可写的并且存在)。我还需要用锁来保护这些用户文件,因为可能受几个应用程序影响(在此问题中这些应用程序肯定无法运行)。

一切顺利,直到我尝试使用以非英语(non utf8?)符号命名的本地网络上的文件夹为止。这是一个很大的问题,因为我的应用程序支持多种语言,包括中文,法语,俄语等。也可以有混合语言文件夹。问题文件夹看起来像这样(并且已成功传递到QString filepath变量,我的意思是,它看起来可读,没有unicode问题):

\ localhost \ myfiles \ Test \Русскоё俄语名称

失败的代码是:

auto lockFile = std::make_unique<QLockFile>( filepath + ".lock" );
std::shared_mutex mutex;
std::unique_lock<std::shared_mutex> lock(mutex );

if ( lockFile )
    return lockFile ->tryLock( ); // -- here come the unexpected failures with all the codes of QLockfile failures
else
    return false;

我尝试使用QTextCodec更改语言环境,但是没有用。我还认为它可以通过某种方式与网络连接,因为在我的本地磁盘上不会发生此问题,但是我不知道到底是什么问题。

iCMS 回答:QLockFile tryLock()无法使用非英语路径

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1758346.html

大家都在问