ASP.NET 4.5 ZipFile类如何从FTP下载和打开zip

ASP.NET 4.5 ZipFile类如何从FTP下载和打开zip,asp.net,ftp,zipfile,ftpwebrequest,Asp.net,Ftp,Zipfile,Ftpwebrequest,我的总体目标是从我的ftp抓取一个zip文件,动态打开它,读取excel文件中某个特定字段的内容任何zip文件中都只有一个文件 到目前为止,我已经成功地用ftpwebrequest连接到我的ftp,我可以将文件下载到本地文件夹,这不是我想要的工作流程,但我正在采取“小步骤”的方法 我发现在Asp.NET4.5中引入了一个名为ZipFile的类,它似乎有一个打开和读取zip的方法,但我似乎无法让它接受我的ftp路径作为有效路径 这是我下载的东西 var file = f.Element("FILE

我的总体目标是从我的ftp抓取一个zip文件,动态打开它,读取excel文件中某个特定字段的内容任何zip文件中都只有一个文件

到目前为止,我已经成功地用ftpwebrequest连接到我的ftp,我可以将文件下载到本地文件夹,这不是我想要的工作流程,但我正在采取“小步骤”的方法

我发现在Asp.NET4.5中引入了一个名为ZipFile的类,它似乎有一个打开和读取zip的方法,但我似乎无法让它接受我的ftp路径作为有效路径

这是我下载的东西

var file = f.Element("FILE_PATH").Value;
                string ftpHost = "ftp.com";

                var URI = @"ftp://" + ftpHost + "/download/" + file;
                var UserName = @"ftp@mysite.com";

                FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(URI);
                ftp.UsePassive = true;
                ftp.Credentials = new NetworkCredential(UserName, "Password");
                ftp.UseBinary = true;
                ftp.Method = WebRequestMethods.Ftp.DownloadFile;

                FtpWebResponse ftpResponse = (FtpWebResponse)ftp.GetResponse();
                string theFile = ftpResponse.ResponseUri.ToString();

                Stream responseStream = ftpResponse.GetResponseStream();
                FileStream writer = new FileStream(@"C:\websites\" + file, FileMode.Create);

                long length = response.ContentLength;
                int bufferSize = 2048;
                int readCount;
                byte[] buffer = new byte[2048];

                readCount = responseStream.Read(buffer, 0, bufferSize);
                while (readCount > 0)
                {
                    writer.Write(buffer, 0, readCount);
                    readCount = responseStream.Read(buffer, 0, bufferSize);
                }
                responseStream.Close();
                ftpResponse.Close();
                writer.Close();
我已经尝试实现以下方法来打开和读取zip文件。我把这个块放在创建字符串文件的行之后,因为我不知道它的更好的归宿。这将返回路径无效的错误信息

.... FtpWebResponse ftpResponse = (FtpWebResponse)ftp.GetResponse();
                    string theFile = ftpResponse.ResponseUri.ToString();
using (ZipArchive archive = ZipFile.OpenRead(theFile))
                    {
                        foreach (ZipArchiveEntry zfile in archive.Entries)
                        {
                            var FileName = zfile.Name;

                        }
                    }

如何从ftp打开和读取此文件?

不确定您是否愿意选择其他文件。如果你是我强烈推荐的。让生活变得更容易…我想如果我能在没有第三方的情况下完成它会很好,但我愿意接受其他选择。我会试试DotNetZip