如何解决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更改语言环境,但是没有用。我还认为它可以通过某种方式与网络连接,因为在我的本地磁盘上不会发生此问题,但是我不知道到底是什么问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。