将文件从资源复制到磁盘保持文件夹结构(平台独立)

时间:2017-01-24 15:27:48

标签: c++ qt qfile qdir qresource

问题:

如何以独立于平台的方式将资源文件(同时保留文件名)复制到磁盘?

示例和说明:

我的资源文件(.qrc file)中有文件,例如:

:/student/stud_temp              (student/template.txt)
:/student/examples/stud_exOne    (student/examples/student_example1.txt)
:/student/examples/stud_exTwo    (student/examples/student_example2.txt)

:/lecturer/lec_temp              (lecturer/template.txt)
:/lecturer/lec_ex                (lecturer/lecturer_example.txt)
:/lecturer/data/lec_data         (lecturer/data/data_file.dat)

我想将这些文件复制到磁盘上,为了示例,请保留文件结构。

因此生成的文件夹结构应该是这样的(unix系统):

$ ls $PWD
student lecturer

$ ls $PWD/student
template.txt
examples

$ ls $PWD/lecturer
template.txt
lecturer_example.txt
data

有一种方法建议here复制到文件系统,如下所示,但需要指定文件名。但是,应该自动获取资源的原始文件名。

目前我需要执行以下操作来复制文件夹结构:

QDir::mkpath("../student");    
QFile::copy(":/student/template.txt", "../student/template.txt")

但我无法相信这是最好的方法。

此外,由于目录分隔符(尽管存在琐碎的问题),此方法依赖于平台。

有没有更好的方法来实现这一目标?

0 个答案:

没有答案