Я создаю приложение для Windows на C #, которое извлекает файл .zip в папку% temp%, показывает содержимое и позволяет редактировать их.После завершения редактирования файлов вы можете снова сохранить файл - приложение удаляет исходный файл .zip и сжимает папку в тот же файл (который был удален), чтобы он выглядел так, как будто его заменили.
Iпопытался создать новый пустой файл .zip через приложение и сохранить его.Это сработало.Затем я также попытался создать в нем папку и сохранить ее.Это также сработало, но когда я создаю новый файл .txt, он выдает ошибку «файл используется».Эта ошибка не возникает, когда я редактирую файл .txt, который уже был в архиве .zip, и сохраняю его.
//.txt file creation into the dir where the .zip file was extracted
System.IO.File.Create(System.IO.Path.GetTempPath() + "UltraDocs\\" + rnd + "\\" + listBox1.GetItemText(listBox1.SelectedItem) + "\\" + toolStripTextBox3.Text + ".txt");
System.IO.File.SetAttributes(System.IO.Path.GetTempPath() + "UltraDocs\\" + rnd + "\\" + listBox1.GetItemText(listBox1.SelectedItem) + "\\" + toolStripTextBox3.Text + ".txt", ~System.IO.FileAttributes.ReadOnly);
//Compression
System.IO.File.Delete(filedia.FileName);
ZipFile.CreateFromDirectory(System.IO.Path.GetTempPath() + "UltraDocs\\" + rnd, filedia.FileName);
//This line gives me a "*.txt is currently in use by another process" error
Есть идеи, что может быть причиной этой ошибки и как ее исправить?