[英]How to download FTP Files from Previous date to Current Date
我可以从C#下载ftp文件,但可以下载当前日期文件。 我需要从以前的日期下载文件到当前的日期。 例如,我的文件是:
xys04-02-2011.zip xys04-03-2011.zip xys04-04-2011.zip
我正在控制台应用程序中尝试以下代码:
string defaultLocalFolder_MCX = "C:\\";
FastZip fzMCX = new FastZip();
fzMCX.ExtractZip(
defaultLocalFolder_MCX + "\\xys03-31-2011.zip",
defaultLocalFolder_MCX, "");
FtpWebRequest requestFileDownload =
(FtpWebRequest)WebRequest.Create("ftp://localhost/Source/" + fileName);
requestFileDownload.Credentials = new NetworkCredential("test", "test");
requestFileDownload.Method = WebRequestMethods.Ftp.DownloadFile;
FtpWebResponse responseFileDownload =
(FtpWebResponse)requestFileDownload.GetResponse();
Stream responseStream = responseFileDownload.GetResponseStream();
FileStream writeStream = new FileStream(localPath + fileName, FileMode.Create);
int Length = 2048;
Byte[] buffer = new Byte[Length];
int bytesRead = responseStream.Read(buffer, 0, Length);
while (bytesRead > 0)
{
writeStream.Write(buffer, 0, bytesRead);
bytesRead = responseStream.Read(buffer, 0, Length);
}
responseStream.Close();
writeStream.Close();
requestFileDownload = null;
responseFileDownload = null;
好吧,听起来您需要按日期对方法进行参数化,然后从该日期生成文件名:
string formattedDate = date.ToString("MM-dd-yyyy", CultureInfo.InvariantCulture);
fzMCX.ExtractZip(
defaultLocalFolder_MCX + "\\xys" + formattedDate + ".zip",
defaultLocalFolder_MCX, "");
然后只需循环调用该方法:
for (DateTime date = startDate; date <= dateTime.endDate; date = date.AddDays(1))
{
FetchZipFile(date);
}
(我只是猜中了这个名字,因为还不清楚zip文件提取的过程。)
关于代码样式的一些建议:
using
语句,而不是手动关闭它们。 包括WebResponses
。 Stream.CopyTo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.