Скопировать файл с ресурса на диск с сохранением структуры папок (независимо от платформы)

Проблема:

Как скопировать файлы ресурсов, сохраняя имена файлов, на диск независимо от платформы?

Пример и объяснение:

У меня есть файлы в моем файле ресурсов ( файл.qrc), например:

:/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

Здесь предлагается метод копирования в файловую систему, как показано ниже, но необходимо указать имя файла. Однако это должно быть автоматизировано, чтобы получить исходное имя ресурса.

В настоящее время мне нужно сделать следующее для репликации структуры папок:

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

Однако я не могу поверить, что это лучший способ.

Кроме того, этот метод зависит от платформы из-за разделителей каталогов (хотя и тривиальная проблема).

Есть ли лучшие способы добиться этого?

0 ответов

Другие вопросы по тегам