diff --git a/Source/Core/DiscIO/DiscExtractor.cpp b/Source/Core/DiscIO/DiscExtractor.cpp index dbd5a7a821..9a2dd16487 100644 --- a/Source/Core/DiscIO/DiscExtractor.cpp +++ b/Source/Core/DiscIO/DiscExtractor.cpp @@ -76,11 +76,13 @@ void ExportDirectory(const Volume& volume, const Partition partition, const File const std::string& export_folder, const std::function& 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); } } } diff --git a/Source/Core/DolphinWX/ISOProperties/FilesystemPanel.cpp b/Source/Core/DolphinWX/ISOProperties/FilesystemPanel.cpp index f0f7cd429a..3d7f594aec 100644 --- a/Source/Core/DolphinWX/ISOProperties/FilesystemPanel.cpp +++ b/Source/Core/DolphinWX/ISOProperties/FilesystemPanel.cpp @@ -387,7 +387,6 @@ void FilesystemPanel::ExtractDirectories(const std::string& full_path, wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_CAN_ABORT | wxPD_ELAPSED_TIME | wxPD_ESTIMATED_TIME | wxPD_REMAINING_TIME | wxPD_SMOOTH); - File::CreateFullPath(output_folder + "/" + full_path); DiscIO::ExportDirectory( *m_opened_iso, filesystem.GetPartition(), *file_info, true, full_path, output_folder, [&](const std::string& path) {