Я использую библиотеку DotNetZip для извлечения файлов из zip-файла.Вывод DotNetZip не позволяет процессу получить доступ к файлу
using(ZipFile zip = ZipFile.Read(zipLocation))
{
foreach (ZipEntry entry in zip){
entry.Extract(_updateDir);
Log.Write("Unpacked: " + entry.FileName, Log.LogType.Info);
}
zip.Dispose();
}
Впоследствии я пытаюсь отредактировать один из файлов, которые я извлек.
var updateList = allFiles.Where(x => x.Contains(".UPD"));
foreach (string upd in updateList){
string[] result = File.ReadAllLines(upd);
int index = Array.IndexOf(result, "[Info]");
//then I do stuff with index
}
На линии
string[] result = File.ReadAllLines(upd);
я получаю исключение: The process cannot access the file <file name> because it is being used by another process.
Я знаю, что это исключение бросают, потому что файл используется в другом месте. Единственное место, которое он использует до File.ReadAllLines(upd)
, находится в коде DotNetZip выше.
Есть ли способ в коде DotNetZip предотвратить это?
Спасибо за помощь, этот инструмент был полезен. Другой процесс в другом месте также использовался в том же файле. – vogs