System.IO.Compression.ZipFile.ExtractToDirectory с переименованием [закрыто]C#

Место общения программистов C#
Ответить
Гость
 System.IO.Compression.ZipFile.ExtractToDirectory с переименованием [закрыто]

Сообщение Гость »

[*]
Текущий метод извлекает zip-файл без/переопределения варианты.
[*]
Я хотел бы знать, как извлечь zip-файл в папку со всей его структурой, но с возможностью переименования.
[*]
Если файлы существуют, переименуйте их, как в окне?
[*]
Я решил извлечь zip-файл с параметром переопределения = false во временную папку с помощью функции Compression.ExtractToFolder.
[*]
Следующий шаг по перебору временной папки:
и скопируйте структуру пробелов вложенных папок и файлов и, если файл существует, переименуйте его.

строка zipFilePath = zipPathForFolderOrPathForFile; Путь извлечения строки = SelectedItem.Path; строка guid = Guid.NewGuid().ToString(); строка tempExtractionPath = Path.Combine(extractionPath, guid); System.IO.Compression.ZipFile.ExtractToDirectory(zipFilePath, tempExtractionPath); // нет переопределения ProcessDirectory(tempExtractionPath, guid);

private void ProcessDirectory (строка sourceDirectory, строка guid) { строка [] fileEntries = Directory.GetFiles(sourceDirectory); foreach (строка fileName в fileEntries) ProcessFile (имя файла, руководство); string[] subdirectoryEntries =Directory.GetDirectories(sourceDirectory); foreach (строковый подкаталог в subdirectoryEntries) { // У меня проблема с созданием новой несуществующей подпапки.

ProcessDirectory(подкаталог, руководство); } } частный void ProcessFile (путь к строке, идентификатор строки) { var newFile = path.Substring(0, path.LastIndexOf(Path.DirectorySeparatorChar)); newFile = newFile.Replace(Path.Combine(Path.DirectorySeparatorChar.ToString(),guid), string.Empty); новыйФайл = Путь.Объединить(новыйФайл,Путь.GetFileName(путь)); число int = 1; в то время как (File.Exists(newFile)) { строка fileNameWithoutExtension = Path.GetFileNameWithoutExtension(newFile); строка fileExtension = Path.GetExtension(newFile); newFile = Path.Combine(Path.GetDirectoryName(newFile),$"{fileNameWithoutExtension}_Copy{count}{fileExtension}"); считать++; } Файл.Создать(новыйФайл); } 6.У меня проблема с пробелами в структуре подпапок и файлов. Заранее спасибо,
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»