0
我在一個ftp服務器上有一些zip文件,我想通過代碼下載,但每次下載它們並嘗試打開它們時,它們都已損壞。如何通過代碼下載.zip文件?
FtpClient conn = new FtpClient();
conn.Host = ftpFtpServerAddress;
conn.Credentials = new NetworkCredential(ftpSrcUsername, ftpSrcPwd);
var files = conn.GetListing(ftpSrcFolder, FtpListOption.Modify | FtpListOption.Size);
foreach (var file in files)
{
conn.BeginOpenRead(file.FullName,
new AsyncCallback(BeginOpenReadCallback), new AsyncArguments()
{
Client = conn,
FileName = file.Name
});
}
private void BeginOpenReadCallback(IAsyncResult ar)
{
AsyncArguments args = (AsyncArguments)ar.AsyncState;
FtpClient conn = args.Client;
Stream istream = conn.EndOpenRead(ar);
using (System.IO.FileStream fs = System.IO.File.Create(@"C:\temp\" + args.FileName))
{
byte[] bytes = new byte[istream.Length + 10];
int numBytesToRead = (int)istream.Length;
fs.Write(bytes, 0, numBytesToRead);
}
}
查找WebClient類。下載一個文件是3行代碼。 –
我會懷疑問題出在您的異步回調。我使用類似的FTP代碼來拉取zip文件,然後解壓縮,沒有任何問題。 – evanmcdonnal
我正在使用「System.Net.FtpClient;」爲ftp。會有什麼問題? – chobo2