c# - DotNetZip如何在解压后删除文件
问题描述
我在我的项目中发现了一个问题。我目前正在使用 DotNetZip 库来提取 zip 文件。此外,我需要在提取其内容后删除一个 zip 文件。但是,我无法做到这一点(手动和使用 File.Delete(...)),因为该文件夹在我的程序中打开。所以,我认为这个问题是由文件提取过程引起的“可疑”代码部分:
字符串 localFileName = @"...路径....";
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);
}
}
所以,我的问题是:如何让这个文件“免费”?(为了删除它)
解决方案
推荐阅读
- php - 使用 PHP Amazon Api 5 解析 JSON
- html - 确定元素之间的边距
- browser - 为什么我要使用 history.pushState 而不是 location.hash?
- python - 如何修复运行此代码时出现的 (TypeError: must be a real number, not a tuple) 错误?
- android - 从 Firestore 获取数据并加载回收站视图
- node.js - 使用 Gulp 进行快速设置的问题
- java - Java BoxLayout 在左侧和右侧放置一些对象
- assembly - 装配班次
- javascript - TypeError:为“消息”提供的值必须是类型:服务总线队列 Azure 中的 ServiceBusMessage
- google-cloud-platform - 为什么显示设备不在google cloud windows server上