Jan*_*ngo 4 c# ftp sftp ftpwebrequest
如何使用c#代码下载.zip文件格式?
这是代码,我用来下载.只是为了突出显示,如果我下载.txt文件,它工作正常.如果我下载.zip文件,它会下载.zip文件但我无法打开它.它抱怨.zip的格式不正确.我怀疑我如何在本地驱动器上写回文件.
救命?
string ftpServerIP = FTPServer;
string ftpUserID = FTPUser;
string ftpPassword = FTPPwd;
FileInfo fileInf = new FileInfo(FileName);
string uri = "ftp://" + ftpServerIP + "/" + fileInf.Name;
FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(uri); //new Uri("ftp://" + ftpServerIP + DestinationFolder + fileInf.Name));
reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
reqFTP.EnableSsl = true;
reqFTP.KeepAlive = false;
reqFTP.UseBinary = true;
//reqFTP.UsePassive = true;
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
//Stream strm = reqFTP.GetRequestStream();
StreamReader reader = new StreamReader(reqFTP.GetResponse().GetResponseStream());
StreamWriter writer = new StreamWriter(Path.Combine(FolderToWriteFiles, FileName), false);
writer.Write(reader.ReadToEnd());
return true;
Run Code Online (Sandbox Code Playgroud)
using System.Net;
// ...
new WebClient().DownloadFile("ftp://ftp.someurl.com/file.zip",
"C:\\downloadedFile.zip");
Run Code Online (Sandbox Code Playgroud)
将流保存到磁盘的方式是错误的.您将流视为字符序列,这会破坏流程中的ZIP文件.打开一个FileStream而不是一个,StreamWriter并使用类似我的函数从这里GetResponseStream()直接复制返回值.FileStreamCopyStream
| 归档时间: |
|
| 查看次数: |
12705 次 |
| 最近记录: |