代码之家  ›  专栏  ›  技术社区  ›  Kate

在FTP上创建与本地名称相同的文件名

  •  0
  • Kate  · 技术社区  · 12 年前

    我有这样的代码,其中我从sql数据库生成xml文件:

        int counter;
        int counter2;
    private void GenerovaniVse()
    {
      SqlConnection con = new SqlConnection("Data Source=****");
      string strSQL = "select w.KOD_....";                
      SqlDataAdapter dt = new SqlDataAdapter(strSQL, con);
      DataSet ds = new DataSet("ITEMS");
      dt.Fill(ds, "ITEM");
      FileStream strFileName = File.Create(@"C:\\Users\\L\\Desktop\\" + (counter++) + ".xml");
      XmlWriterSettings settings = new XmlWriterSettings();
      settings.Encoding = Encoding.Unicode;
    
      using (XmlWriter xmlWriter = XmlWriter.Create(strFileName, settings))
        {
          ds.WriteXml(xmlWriter);
          xmlWriter.Close();
        }
    }
    

    将此文件上传到ftp的代码:

    private void Upload()
     {
       FileInfo f = new FileInfo("C:\\Users\\L\\Desktop\\" + (counter2) + ".xml");
       long original_vel = f.Length; 
       FtpWebRequest request = (FtpWebRequest)WebRequest.Create(*****);
       request.Method = WebRequestMethods.Ftp.GetFileSize;
       request.Method = WebRequestMethods.Ftp.UploadFile;
       request.Credentials = new NetworkCredential("***", "***");
    
       StreamReader sourceStream = new StreamReader(??????);
       byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
       sourceStream.Close();
       request.ContentLength = fileContents.Length;
       long ftp_vel = request.ContentLength; //velikost souboru na ftp      
       Stream requestStream = request.GetRequestStream();
       requestStream.Write(fileContents, 0, fileContents.Length);
       requestStream.Close();
       FtpWebResponse response = (FtpWebResponse)request.GetResponse();
                    counter2++;
                    response.Close();                         
    }
    

    问题出现在:strmfile.Close(); 但现在,当我将xml复制到ftp时,ftp上的文件比原始xml更小。。。在原始xml上,我有Unicode,在ftp文件中没有任何代码。。。

    1 回复  |  直到 12 年前
        1
  •  1
  •   Andrew Cox    12 年前

    您可能需要关闭 strFileName 在你写完之后 GenerovaniVse 作用