Example #1
0
        /// <summary>
        /// 上传
        /// </summary>
        /// <param name="filename"></param>
        public void Upload(string filename)
        {
            FileInfo      fileInf = new FileInfo(filename);
            string        uri     = ftpURI + fileInf.Name;
            FtpWebRequest reqFTP;

            reqFTP               = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
            reqFTP.Credentials   = new NetworkCredential(ftpUserID, ftpPassword);
            reqFTP.KeepAlive     = false;
            reqFTP.Method        = WebRequestMethods.Ftp.UploadFile;
            reqFTP.UseBinary     = true;
            reqFTP.ContentLength = fileInf.Length;
            int buffLength = 2048;

            byte[]     buff = new byte[buffLength];
            int        contentLen;
            FileStream fs = fileInf.OpenRead();

            try
            {
                Stream strm = reqFTP.GetRequestStream();
                contentLen = fs.Read(buff, 0, buffLength);
                while (contentLen != 0)
                {
                    strm.Write(buff, 0, contentLen);
                    contentLen = fs.Read(buff, 0, buffLength);
                }
                strm.Close();
                fs.Close();
            }
            catch (Exception ex)
            {
                Insert_Standard_ErrorLog.Insert("FtpWeb", "Upload Error --> " + ex.Message);
            }
        }
Example #2
0
        /// <summary>
        /// 下载
        /// </summary>
        /// <param name="filePath"></param>
        /// <param name="fileName"></param>
        public void Download(string filePath, string fileName)
        {
            FtpWebRequest reqFTP;

            try
            {
                FileStream outputStream = new FileStream(filePath + "\\" + fileName, FileMode.Create);

                reqFTP             = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + fileName));
                reqFTP.Method      = WebRequestMethods.Ftp.DownloadFile;
                reqFTP.UseBinary   = true;
                reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                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);
                }

                ftpStream.Close();
                outputStream.Close();
                response.Close();
            }
            catch (Exception ex)
            {
                Insert_Standard_ErrorLog.Insert("FtpWeb", "Download Error --> " + ex.Message);
            }
        }
Example #3
0
        /// <summary>
        /// 删除文件夹
        /// </summary>
        /// <param name="folderName"></param>
        public void RemoveDirectory(string folderName)
        {
            try
            {
                string        uri = ftpURI + folderName;
                FtpWebRequest reqFTP;
                reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));

                reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                reqFTP.KeepAlive   = false;
                reqFTP.Method      = WebRequestMethods.Ftp.RemoveDirectory;

                string         result     = String.Empty;
                FtpWebResponse response   = (FtpWebResponse)reqFTP.GetResponse();
                long           size       = response.ContentLength;
                Stream         datastream = response.GetResponseStream();
                StreamReader   sr         = new StreamReader(datastream);
                result = sr.ReadToEnd();
                sr.Close();
                datastream.Close();
                response.Close();
            }
            catch (Exception ex)
            {
                Insert_Standard_ErrorLog.Insert("FtpWeb", "Delete Error --> " + ex.Message + "  文件名:" + folderName);
            }
        }
Example #4
0
 /// <summary>
 /// 获取当前目录下明细(包含文件和文件夹)
 /// </summary>
 /// <returns></returns>
 public string[] GetFilesDetailList()
 {
     string[] downloadFiles;
     try
     {
         StringBuilder result = new StringBuilder();
         FtpWebRequest ftp;
         ftp             = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI));
         ftp.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
         ftp.Method      = WebRequestMethods.Ftp.ListDirectoryDetails;
         WebResponse  response = ftp.GetResponse();
         StreamReader reader   = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
         string       line     = reader.ReadLine();
         while (line != null)
         {
             result.Append(line);
             result.Append("\n");
             line = reader.ReadLine();
         }
         result.Remove(result.ToString().LastIndexOf("\n"), 1);
         reader.Close();
         response.Close();
         return(result.ToString().Split('\n'));
     }
     catch (Exception ex)
     {
         downloadFiles = null;
         Insert_Standard_ErrorLog.Insert("FtpWeb", "GetFilesDetailList Error --> " + ex.Message);
         return(downloadFiles);
     }
 }
Example #5
0
        /// <summary>
        /// 获取指定文件大小
        /// </summary>
        /// <param name="filename"></param>
        /// <returns></returns>
        public long GetFileSize(string filename)
        {
            FtpWebRequest reqFTP;
            long          fileSize = 0;

            try
            {
                reqFTP             = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + filename));
                reqFTP.Method      = WebRequestMethods.Ftp.GetFileSize;
                reqFTP.UseBinary   = true;
                reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                //reqFTP.Proxy = WebRequest.DefaultWebProxy;
                reqFTP.Proxy = GlobalProxySelection.GetEmptyWebProxy();
                FtpWebResponse response  = (FtpWebResponse)reqFTP.GetResponse();
                Stream         ftpStream = response.GetResponseStream();
                fileSize = response.ContentLength;

                ftpStream.Close();
                response.Close();
            }
            catch (Exception ex)
            {
                Insert_Standard_ErrorLog.Insert("FtpWeb", "GetFileSize Error --> " + ex.Message);
            }
            return(fileSize);
        }
Example #6
0
        public void Makedir(string filePath, string dirname, out string status)
        {
            status = "OK";
            string uri = ftpURI + dirname;

            if (filePath != "")
            {
                uri = filePath + dirname;
            }
            FtpWebRequest reqFTP;

            status = "OK";
            try
            {
                reqFTP             = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
                reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                reqFTP.Method      = WebRequestMethods.Ftp.MakeDirectory;

                FtpWebResponse response = reqFTP.GetResponse() as FtpWebResponse;
            }
            catch (Exception ex)
            {
                Insert_Standard_ErrorLog.Insert("FtpWeb", "Error -->创建目录异常" + uri + "-->" + ex.Message);
                status = "Error";
            }
        }
Example #7
0
        public void Upload(string localFile, string path, string ftpFileName, out string status, ref string msg)
        {
            status = "OK";
            FileInfo fileInf = new FileInfo(localFile);

            if (ftpFileName == "")
            {
                ftpFileName = fileInf.Name;
            }

            string uri = ftpURI + ftpFileName;

            if (path != "")
            {
                uri = ftpURI + "/" + path + "/" + ftpFileName;
            }

            for (int x = 0; x < 3; x++)
            {
                status = "OK";
                FtpWebRequest reqFTP;
                try
                {
                    reqFTP               = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
                    reqFTP.Credentials   = new NetworkCredential(ftpUserID, ftpPassword);
                    reqFTP.KeepAlive     = false;
                    reqFTP.Method        = WebRequestMethods.Ftp.UploadFile;
                    reqFTP.UseBinary     = true;
                    reqFTP.ContentLength = fileInf.Length;
                    int        buffLength = 2048;
                    byte[]     buff       = new byte[buffLength];
                    int        contentLen;
                    FileStream fs   = fileInf.OpenRead();
                    Stream     strm = reqFTP.GetRequestStream();
                    contentLen = fs.Read(buff, 0, buffLength);
                    while (contentLen != 0)
                    {
                        strm.Write(buff, 0, contentLen);
                        contentLen = fs.Read(buff, 0, buffLength);
                    }
                    strm.Close();
                    fs.Close();
                }
                catch (Exception ex)
                {
                    Insert_Standard_ErrorLog.Insert("FtpWeb", "Upload Error -->上传异常" + fileInf.Name + "--" + uri + "-->" + ex.Message);
                    status = "Error";
                    msg    = "Upload Error -->上传异常" + fileInf.Name + "--" + uri + "-->" + ex.Message;
                }

                if (status == "OK")
                {
                    break;
                }
            }
        }
Example #8
0
        /// <summary>
        /// 获取当前目录下文件列表(仅文件)
        /// </summary>
        /// <returns></returns>
        public string[] GetFileList(string mask)
        {
            string[]      downloadFiles;
            StringBuilder result = new StringBuilder();
            FtpWebRequest reqFTP;

            try
            {
                reqFTP             = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI));
                reqFTP.UseBinary   = true;
                reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                reqFTP.Method      = WebRequestMethods.Ftp.ListDirectory;
                WebResponse  response = reqFTP.GetResponse();
                StreamReader reader   = new StreamReader(response.GetResponseStream(), Encoding.Default);

                string line = reader.ReadLine();
                while (line != null)
                {
                    if (mask.Trim() != string.Empty && mask.Trim() != "*.*")
                    {
                        string mask_ = mask.Substring(0, mask.IndexOf("*"));
                        if (line.Substring(0, mask_.Length) == mask_)
                        {
                            result.Append(line);
                            result.Append("\n");
                        }
                    }
                    else
                    {
                        result.Append(line);
                        result.Append("\n");
                    }
                    line = reader.ReadLine();
                }
                result.Remove(result.ToString().LastIndexOf('\n'), 1);
                reader.Close();
                response.Close();
                return(result.ToString().Split('\n'));
            }
            catch (Exception ex)
            {
                downloadFiles = null;
                if (ex.Message.Trim() != "远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)。")
                {
                    Insert_Standard_ErrorLog.Insert("FtpWeb", "GetFileList Error --> " + ex.Message.ToString());
                }
                return(downloadFiles);
            }
        }
Example #9
0
        /// <summary>
        /// 改名
        /// </summary>
        /// <param name="currentFilename"></param>
        /// <param name="newFilename"></param>
        public void ReName(string currentFilename, string newFilename)
        {
            FtpWebRequest reqFTP;

            try
            {
                reqFTP             = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + currentFilename));
                reqFTP.Method      = WebRequestMethods.Ftp.Rename;
                reqFTP.RenameTo    = newFilename;
                reqFTP.UseBinary   = true;
                reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                FtpWebResponse response  = (FtpWebResponse)reqFTP.GetResponse();
                Stream         ftpStream = response.GetResponseStream();
                ftpStream.Close();
                response.Close();
            }
            catch (Exception ex)
            {
                Insert_Standard_ErrorLog.Insert("FtpWeb", "ReName Error --> " + ex.Message);
            }
        }
Example #10
0
        /// <summary>
        /// 创建文件夹
        /// </summary>
        /// <param name="dirName"></param>
        public void MakeDir(string dirName)
        {
            FtpWebRequest reqFTP;

            try
            {
                // dirName = name of the directory to create.
                reqFTP             = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + dirName));
                reqFTP.Method      = WebRequestMethods.Ftp.MakeDirectory;
                reqFTP.UseBinary   = true;
                reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                FtpWebResponse response  = (FtpWebResponse)reqFTP.GetResponse();
                Stream         ftpStream = response.GetResponseStream();
                ftpStream.Close();
                response.Close();
            }
            catch (Exception ex)
            {
                Insert_Standard_ErrorLog.Insert("FtpWeb", "MakeDir Error --> " + ex.Message);
            }
        }
Example #11
0
        public void Upload(string filename, string name, string blh, out string status)
        {
            status = "OK";

            FileInfo fileInf = new FileInfo(filename);

            string uri = ftpURI + "/" + blh + "/" + name;

            if (blh == "")
            {
                uri = ftpURI + fileInf.Name;
            }
            FtpWebRequest reqFTP;

            reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));

            reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
            reqFTP.KeepAlive   = false;
            //try
            //{
            //    reqFTP.Method = WebRequestMethods.Ftp.DeleteFile;

            //   FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();

            //    response.Close();
            //}
            //catch(Exception ex)
            //{
            //    MessageBox.Show(ex.ToString());
            //}


            reqFTP.Method = WebRequestMethods.Ftp.UploadFile;

            reqFTP.UseBinary = true;

            reqFTP.ContentLength = fileInf.Length;

            int buffLength = 2048;

            byte[] buff = new byte[buffLength];

            int contentLen;

            FileStream fs = fileInf.OpenRead();

            try
            {
                Stream strm = reqFTP.GetRequestStream();

                contentLen = fs.Read(buff, 0, buffLength);

                while (contentLen != 0)
                {
                    strm.Write(buff, 0, contentLen);

                    contentLen = fs.Read(buff, 0, buffLength);
                }

                strm.Close();

                fs.Close();
            }

            catch (Exception ex)
            {
                Insert_Standard_ErrorLog.Insert("FtpWeb", "Upload Error --> " + ex.Message);
                status = "Error";
            }
        }