C#-FTP

来源:互联网 发布:淘宝怎么提高流量 编辑:程序博客网 时间:2024/05/22 01:38
 /// <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;        }

0 0