问题:
如何以独立于平台的方式将资源文件(同时保留文件名)复制到磁盘?
示例和说明:
我的资源文件(.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")
但我无法相信这是最好的方法。
此外,由于目录分隔符(尽管存在琐碎的问题),此方法依赖于平台。
有没有更好的方法来实现这一目标?