读书人

C# FTP 自动创建目录/下传文件

发布时间: 2012-09-03 09:48:39 作者: rapoo

C# FTP 自动创建目录/上传文件

        //上传文件        public static Boolean FtpUpload(string ftpPath,string localFile)        {            //检查目录是否存在,不存在创建            FtpCheckDirectoryExist(ftpPath);            FileInfo fi = new FileInfo(localFile);            FileStream fs = fi.OpenRead();            long length = fs.Length;            FtpWebRequest req = (FtpWebRequest)WebRequest.Create(ftpServerIP + ftpPath + fi.Name);            req.Credentials = new NetworkCredential(ftpUserID, ftpPassword);            req.Method = WebRequestMethods.Ftp.UploadFile;            req.ContentLength = length;            req.Timeout = 10 * 1000;            try            {                Stream stream = req.GetRequestStream();                int BufferLength = 2048; //2K                   byte[] b = new byte[BufferLength];                int i;                while ((i = fs.Read(b, 0, BufferLength)) > 0)                {                    stream.Write(b, 0, i);                }                stream.Close();                stream.Dispose();            }            catch (Exception e)            {                ErrLog(e.Message + e.StackTrace);                return false;            }            finally            {                fs.Close();                req.Abort();            }            req.Abort();            return true;        }        //判断文件的目录是否存,不存则创建        public static void FtpCheckDirectoryExist(string destFilePath)        {            string fullDir = FtpParseDirectory(destFilePath);            string[] dirs = fullDir.Split('/');            string curDir = "/";            for (int i = 0; i < dirs.Length; i++)            {                string dir = dirs[i];                //如果是以/开始的路径,第一个为空                  if (dir != null && dir.Length > 0)                {                    try                    {                        curDir += dir + "/";                        FtpMakeDir(curDir);                    }                    catch (Exception)                    {}                }            }        }        public static string FtpParseDirectory(string destFilePath)        {            return destFilePath.Substring(0, destFilePath.LastIndexOf("/"));        }          //创建目录        public static Boolean FtpMakeDir(string localFile)        {            FtpWebRequest req = (FtpWebRequest)WebRequest.Create(ftpServerIP + localFile);            req.Credentials = new NetworkCredential(ftpUserID, ftpPassword);            req.Method = WebRequestMethods.Ftp.MakeDirectory;            try            {                FtpWebResponse response = (FtpWebResponse)req.GetResponse();                response.Close();            }            catch (Exception)            {                req.Abort();                return false;            }            req.Abort();            return true;        }

读书人网 >C#

热点推荐