У меня есть простая проблема: я загружаю файл с FTP-сервера. Если это файл .zip, я пытаюсь разархивировать с помощью SevenZipExtractor. Это мой код:
foreach(FileInfo fi in fileList)
{
using (SevenZipExtractor zip = new SevenZipExtractor(fi.FullName))
{
if (!zip.Check())
{
// Se il file ha problemi, lo sposto nella directory dei files corrotti
filesToMove.Add(fi.FullName);
Log.ErrorFormat("Error {0}: {1}", fi.Name, "Damaged Zip File");
}
else
{
zip.ExtractArchive(destPath);
File.Delete(fi.FullName);
}
}
}
foreach (string f in filesToMove)
{
FileInfo fi = new FileInfo(f);
fi.MoveTo(Path.Combine(destPath, "ZipCorrotti", fi.Name));
}
Все работает, но если у файла проблемы в zip.Check
, я не могу переместить файл. System.Exception : The process cannot access the file because it is being used by another process.
Если при отладке я пропускаю zip.Check
(прыгаю прямо в предложение if
), у меня нет ошибок.
Что я делаю не так?
Спасибо.