簡體   English   中英

在嘗試使用 SSH.NET 提取從 SFTP 服務器下載的 ZIP 文件后獲取“它正在被另一個進程使用”

[英]Getting "it is being used by another process" after trying to extract a ZIP file downloaded from SFTP server using SSH.NET

我想解壓縮文件時遇到問題。

從 SFTP 下載文件后,我想解壓縮它,但它總是告訴我它正在被另一個進程使用。

我想通過谷歌找到這個問題,但似乎沒有人有這個問題。

有人可以教我如何解決嗎? 非常感謝。

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM