Я обнаружил проблему в своем проекте.В настоящее время я использую библиотеку DotNetZip для распаковки zip-файлов.Кроме того, мне нужно удалить ZIP-файл после извлечения его содержимого.Однако я не могу сделать это (как вручную, так и с помощью File.Delete (...)), потому что папка открыта в моей программе.Итак, я думаю, что эта проблема вызвана процессом извлечения файлов. «Подозрительная» часть кода:
string localFileName = @ "... path ....";
string remoteDir = "/SFTPfolder/";
using (var sftp = new SftpClient(SFTPHost, SFTPUsername, SFTPPassword))
{
sftp.Connect();
var files = sftp.ListDirectory(remoteDir);
foreach (var x in files)
{
if (!x.Name.StartsWith("."))
{
Console.WriteLine(x.Name.ToString());
string rfn = x.Name;
using (Stream st1 = File.OpenWrite(localFileName + rfn))
{
sftp.DownloadFile(remoteDir + rfn, st1);
}
}
}
}
UnzipFiles();
File.Delete(@"BLA\BLA1\BLA2\ZIPFILE.zip");
ГдеUnzipFiles:
public static void UnzipFiles()
{
string zipFilePath = @"BLA\BLA1\BLA2\ZIPFILE.zip";
string extractedFilepath = @"BLA\BLA1\BLA2";
ZipFile zipfile = ZipFile.Read(zipFilePath);
if (!Directory.Exists(extractedFilepath))
{
Directory.CreateDirectory(extractedFilepath);
}
foreach (ZipEntry e in zipfile)
{
e.Extract(extractedFilepath, ExtractExistingFileAction.OverwriteSilently);
}
}
Итак, мой вопрос: как сделать этот файл "бесплатным"?(Чтобы его удалить)