保存到本地驱动器

本文关键字:驱动器 保存 | 更新日期: 2023-09-27 18:18:39

我完成了一个任务,可以使用日历选择csv文件并从FTP下载。

目前我已经预定义了保存csv文件的本地驱动器路径。

我需要显示pop for save,这样用户就可以根据需要保存到任何位置。

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)
  { }
}

保存到本地驱动器

您可以添加一个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
        }