C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 如何将Qt文件路径从资源转换为绝对路径?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要接收绝对文件路径

C:/Users/Dima/YandexDisk/_Application/WeldAnalysis/ExperimentDefaults.xLSX

从QRC文件的路径来看

:/Data/ExperimentDefaults.xLSX.

我怎样才能做到这一点?

解决方法

资源一起打包到QRC文件中,它们不会暴露给文件系统,因此它们无法转换为标准路径;就像访问zip文件中的文件一样.

你有什么意愿用这样的文件路径? QFile可以处理资源路径(“:/ …”)并打开这些文件,但其他文件处理API则不会(例如C的fopen或C的std :: ifstream).此外,出于同样的原因,如果作为参数传递,非Qt应用程序将无法打开此类文件.

您拥有的选项包括

>使用QFile打开文件并使用相关的Qt类读取它(假设您正在处理Excel文件,我认为它不值得付出努力,除非您有一些库从内存缓冲区读取它).
>将文件从资源容器中复制到临时目录(可以使用QTemporaryDir创建一个),然后使用该文件

QTemporaryDir tempDir;
if (tempDir.isValid()) {
  const QString tempFile = tempDir.path() + "/yourfile.xLSX";
  if (QFile::copy(":/yourfile.xLSX",tempFilE)) {
    // your file is Now extracted to the filesystem
  }
}

只要知道,当tempDir被销毁时,临时目录也会被删除,因此也就是你的文件.您可以通过禁用auto-remove功能来避免这种情况:tempDir.setAutoRemove(false)并在完成提取文件后手动删除临时目录.

大佬总结

以上是大佬教程为你收集整理的c – 如何将Qt文件路径从资源转换为绝对路径?全部内容,希望文章能够帮你解决c – 如何将Qt文件路径从资源转换为绝对路径?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。