как разархивировать файл с помощью консольного приложения C #, библиотека dotnetzip - PullRequest
0 голосов
/ 29 мая 2019

Мне нужно распаковать конкретный файл в определенную папку

Я использую C # visual studio express 2010 и библиотеку dotnetzip для архивирования

//take the zip file from sftp
Console.WriteLine("Mendownload File va_txn dari KPFS");
            Console.WriteLine("===================================");
            string remoteDirectory = "/va/";

            using (SftpClient sftp = new SftpClient(host, port, username, password))
            {
                try
                {
                    sftp.Connect();
                    var fileIn = sftp.ListDirectory(remoteDirectory);
                    foreach (var file in fileIn)
                    {
                        if (!file.Name.Equals(".") && !file.Name.Equals("..") && file.LastWriteTime.Date == DateTime.Today)
                        {
                            Console.WriteLine(file.Name);
                            Console.WriteLine("File ditemukan, selesai dikompress");

                            //code to download file
                            using (Stream file1 = File.Create(@"C:\Users\u532246\Desktop\VA\" + file.Name))
                            {
                                sftp.DownloadFile(remoteDirectory + file.Name, file1);
                            }
                        }
                    }
                }
                catch
                {

                }
                sftp.Disconnect();
            }

            //Unzip file
            string pathzip = @"C:\Users\Desktop\VA\va_for_copartner_daily.zip";
            using (ZipFile zip = new ZipFile())
            {
                zip.ExtractAll(pathzip);
            }

Проблема в том, когда файл распаковываетсякод работает, распакованный файл нигде не найден, я не знаю, что я пропустил или что-то не так, может, кто-то может помочь мне исправить мой код?

1 Ответ

2 голосов
/ 29 мая 2019

Вы на самом деле не читаете zip-файл, вы просто извлекаете пустой архив, поскольку вы не указали параметр для конструктора ZipFile.

Это должно сделать это:

//Unzip file
string pathzip = @"C:\Users\Desktop\VA\va_for_copartner_daily.zip";
using (ZipFile zip = new ZipFile.Read(pathzip))
{
    zip.ExtractAll(@"C:\Users\Desktop\VA\SomeOtherFolder");
}
...