我完成了一项任务,可以使用日历和下载表单FTP来选择csv文件。
目前我已经预定了本地驱动器路径来保存csv文件。
我需要显示pop以进行保存,然后用户必须根据需要保存到任何位置。
private void Download()
{
System.DateTime myDate = new System.DateTime();
myDate = caldownload.SelectedDate;
System.DateTime myDate1 = new System.DateTime();
myDate1 = Calendar1.SelectedDate;
string sdate;
string edate;
TextBox1.Text = myDate.ToString("yyyy-MM-dd");
TextBox2.Text = myDate1.ToString("yyyy-MM-dd");
DateTime d1 = myDate.Date;
DateTime d2 = myDate1.Date;
TimeSpan sum = d2 - d1;
int NrOfDays = sum.Days;
NrOfDays++;
int k = NrOfDays;
string[] fileName = new string[k];
//increment for days
int s = myDate.Day;
FtpWebRequest reqFTP;
try
{
if (NrOfDays<=7)
{
for (k = 0; k <= NrOfDays; k++)
{
fname[i] = myDate.ToString("yyyy-MM-dd");
fileName[k] = myDate.ToString("yyyy-MM-dd");
//files to save local drive
FileStream outputStream = new FileStream("F:\\ch" + "\\" + fname[i]+".csv", FileMode.Create);
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + "192.162.1.152" + "//" + "[100]" + "//" + fileName[k] + ".csv"));
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential("", "");
FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
Stream ftpStream = response.GetResponseStream();
long cl = response.ContentLength;
int bufferSize = 2048;
int readCount;
byte[] buffer = new byte[bufferSize];
readCount = ftpStream.Read(buffer, 0, bufferSize);
while (readCount > 0)
{
outputStream.Write(buffer, 0, readCount);
readCount = ftpStream.Read(buffer, 0, bufferSize);
}
myDate = myDate.AddDays(1);
ftpStream.Close();
outputStream.Close();
response.Close();
}
}
else
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "message", "alert('You are allowed to download files for maximum of 7 days .');location.href = 'Default.aspx';", true);
}
}
catch (Exception ex)
{ }
}
答案 0 :(得分:2)
您可以添加SaveFileDialog以从用户检索文件的名称。
例如:
string sFileNameToSaveAs = "";
using (var dialog = new SaveFileDialog())
{
dialog.AddExtension = true;
dialog.Filter = "CSV Files (*.csv) | *.csv";
dialog.Title = "Select the file name to save as";
dialog.InitialDirectory = "C:\\";
dialog.CheckPathExists = true;
dialog.DefaultExt = ".csv";
dialog.ValidateNames = true;
if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
sFileNameToSaveAs = dialog.FileName;
}
}
if (!string.IsNullOrEmpty(sFileNameToSaveAs))
{
FileStream outputStream = new FileStream(sFileNameToSaveAs, FileMode.Create);
// The rest of your retrieval code goes here
}