DiscExtractor: Don't create extra folders when extracting a folder

Before, if you extracted a directory like /map/Final/Release/,
Dolphin would create the nested folders map, Final and Release
in the output directory and put the files in Release instead of
just putting the files directly in the output directory.
This commit is contained in:
JosJuice 2017-06-18 14:17:33 +02:00
commit 39ff203c1e
2 changed files with 6 additions and 7 deletions

View file

@ -76,11 +76,13 @@ void ExportDirectory(const Volume& volume, const Partition partition, const File
const std::string& export_folder,
const std::function<bool(const std::string& path)>& update_progress)
{
File::CreateFullPath(export_folder + '/');
for (const FileInfo& file_info : directory)
{
const std::string path =
filesystem_path + file_info.GetName() + (file_info.IsDirectory() ? "/" : "");
const std::string export_path = export_folder + '/' + path;
const std::string name = file_info.GetName() + (file_info.IsDirectory() ? "/" : "");
const std::string path = filesystem_path + name;
const std::string export_path = export_folder + '/' + name;
if (update_progress(path))
return;
@ -96,9 +98,7 @@ void ExportDirectory(const Volume& volume, const Partition partition, const File
}
else if (recursive)
{
File::CreateFullPath(export_path);
ExportDirectory(volume, partition, file_info, recursive, path, export_folder,
update_progress);
ExportDirectory(volume, partition, file_info, recursive, path, export_path, update_progress);
}
}
}