尝试使用 SSH.NET 提取从 SFTP 服务器下载的 ZIP 文件后得到 "it is being used by another process"
Getting "it is being used by another process" after trying to extract a ZIP file downloaded from SFTP server using SSH.NET
我想解压缩文件时遇到问题。
从 SFTP 下载文件后,我想解压它,但它总是告诉我它正在被另一个进程使用。
我想通过google找到问题,但似乎没有人有这个问题。
有人可以教我怎么解决吗?
非常感谢。
bool result = false;
string zipFile = "";
using (SftpClient sftp = new SftpClient(ip, user, pw))
{
sftp.Connect();
var sftpFiles = GetFileList("/", sftp);
zipFile = GetZipFile(sftpFiles);
if (zipFile != null)
{
var file = File.OpenWrite(fileName);
sftp.DownloadFile(fileName,file);
result = true;
sftp.Disconnect();
}
}
if (result)
{
using (ZipFile zipList = ZipFile.Read(fileName))
{
ZipEntry zipFile = zipList[fileName];
zipFile.Extract("/", ExtractExistingFileAction.OverwriteSilently);
}
}
下载后不要关闭文件。
下载代码应该是这样的:
using (var file = File.OpenWrite(fileName))
{
sftp.DownloadFile(fileName, file);
}
我想解压缩文件时遇到问题。
从 SFTP 下载文件后,我想解压它,但它总是告诉我它正在被另一个进程使用。
我想通过google找到问题,但似乎没有人有这个问题。
有人可以教我怎么解决吗? 非常感谢。
bool result = false;
string zipFile = "";
using (SftpClient sftp = new SftpClient(ip, user, pw))
{
sftp.Connect();
var sftpFiles = GetFileList("/", sftp);
zipFile = GetZipFile(sftpFiles);
if (zipFile != null)
{
var file = File.OpenWrite(fileName);
sftp.DownloadFile(fileName,file);
result = true;
sftp.Disconnect();
}
}
if (result)
{
using (ZipFile zipList = ZipFile.Read(fileName))
{
ZipEntry zipFile = zipList[fileName];
zipFile.Extract("/", ExtractExistingFileAction.OverwriteSilently);
}
}
下载后不要关闭文件。
下载代码应该是这样的:
using (var file = File.OpenWrite(fileName))
{
sftp.DownloadFile(fileName, file);
}