返回顶部

收藏

操作ftp示例

更多
/// <summary>
       /// 上传文件
       /// </summary>
       /// <param name="fileinfo">需要上传的文件</param>
       /// <param name="targetDir">目标路径</param>
       /// <param name="hostname">ftp地址</param>
       /// <param name="username">ftp用户名</param>
       /// <param name="password">ftp密码</param>
       public void UploadFile(FileInfo fileinfo, string targetDir, string hostname, string username, string password,string Urlstr)
       {
           //1. check target
           //target = Guid.NewGuid().ToString();  //使用临时文件名
           string URI = Urlstr ;
           ///WebClient webcl = new WebClient();
           System.Net.FtpWebRequest ftp = GetRequest(URI, username, password);

           //设置FTP命令 设置所要执行的FTP命令,
           //ftp.Method = System.Net.WebRequestMethods.Ftp.ListDirectoryDetails;//假设此处为显示指定路径下的文件列表
           ftp.Method = System.Net.WebRequestMethods.Ftp.UploadFile;
           //指定文件传输的数据类型
           ftp.UseBinary = true;
           ftp.UsePassive = true;

           //告诉ftp文件大小
           ftp.ContentLength = fileinfo.Length;
           //缓冲大小设置为2KB
           const int BufferSize = 2048;
           byte[] content = new byte[BufferSize - 1 + 1];
           int dataRead;

           //打开一个文件流 (System.IO.FileStream) 去读上传的文件
           using (FileStream fs = fileinfo.OpenRead())
           {
               try
               {
                   //把上传的文件写入流
                   using (Stream rs = ftp.GetRequestStream())
                   {
                       do
                       {
                           //每次读文件流的2KB
                           dataRead = fs.Read(content, 0, BufferSize);
                           rs.Write(content, 0, dataRead);
                       } while (!(dataRead < BufferSize));
                       rs.Close();
                   }

               }
               catch (Exception ex) { }
               finally
               {
                   fs.Close();
               }
               SendOk = true;
               listBox1.Items.Add("同步完成!" + fileinfo.Name + "---" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
               SendMessage(listBox1.Handle, WM_VSCROLL, SB_BOTTOM, 0);
           }
           ftp = null;
       }
//该片段来自于http://outofmemory.cn

标签:c#,.net,网络

收藏

0人收藏

支持

0

反对

0

发表评论