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 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)并在完成提取的文件后手动删除临时目录. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |