Exemple #1
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);
                                FtpWebResponse response  = (FtpWebResponse)reqFTP.GetResponse();
                                Stream         ftpStream = response.GetResponseStream();

                                fileSize = response.ContentLength;
                 
                                ftpStream.Close();

                                response.Close();
                            
            }
                        catch(Exception ex)
                         {
                                Insert_Standard_ErrorLog.Insert("GetFileSize Error --> " + ex.Message);
                            
            }
                        return fileSize;

                    
        }
Exemple #2
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("ReName Error --> " + ex.Message);
                            
            }
                    
        }
Exemple #3
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("MakeDir Error --> " + ex.Message);
                            
            }
                    
        }
Exemple #4
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("Delete Error --> " + ex.Message + "  文件名:" + folderName);
                            
            }
                    
        }
Exemple #5
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.Default);
                 
                                 //while (reader.Read() > 0)
                                 //{
                 
                                 //}
                                string line = reader.ReadLine();

                                 //line = reader.ReadLine();
                                 //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("GetFilesDetailList Error --> " + ex.Message);
                                return downloadFiles;

                            
            }
                    
        }
Exemple #6
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("Download Error --> " + ex.Message);
                            
            }
                    
        }
Exemple #7
0
                 /// <summary>
                 /// 上传
                 /// </summary>
                 /// <param name="filename"></param>
        public int Upload(string filename)
        {
            int i = 0;

            try
            {
                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();
                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();
                i = 1;
            }
            catch (Exception ex)
            {
                Insert_Standard_ErrorLog.Insert("Upload Error --> " + ex.Message);
            }
            return(i);
        }
Exemple #8
0
                 /// <summary>
                 /// 删除订单目录
                 /// </summary>
                 /// <param name="ftpServerIP">FTP 主机地址</param>
                 /// <param name="folderToDelete">FTP 用户名</param>
                 /// <param name="ftpUserID">FTP 用户名</param>
                 /// <param name="ftpPassword">FTP 密码</param>
                public static void DeleteOrderDirectory(string ftpServerIP, string folderToDelete, string ftpUserID, string ftpPassword)
                
        {
                        try {
                                if(!string.IsNullOrEmpty(ftpServerIP) && !string.IsNullOrEmpty(folderToDelete) && !string.IsNullOrEmpty(ftpUserID) && !string.IsNullOrEmpty(ftpPassword))
                                 {
                                        FtpWeb fw = new FtpWeb(ftpServerIP, folderToDelete, ftpUserID, ftpPassword);
                                        //进入订单目录
                                        fw.GotoDirectory(folderToDelete, true);

                                        //获取规格目录
                                        string[] folders = fw.GetDirectoryList();

                                        foreach(string folder in folders)
                                         {
                                                if(!string.IsNullOrEmpty(folder) || folder != "")
                                                 {
                                                        //进入订单目录
                                                        string subFolder = folderToDelete + "/" + folder;

                                                        fw.GotoDirectory(subFolder, true);
                                                        //获取文件列表
                                                        string[] files = fw.GetFileList("*.*");

                                                        if(files != null)
                                                         {
                                                                //删除文件
                                                                foreach(string file in files)
                                                                
                                {
                                                                        fw.Delete(file);
                                                                    
                                }

                                                            
                            }
                                                        //删除冲印规格文件夹
                                                        fw.GotoDirectory(folderToDelete, true);

                                                        fw.RemoveDirectory(folder);
                                                    
                        }
                                            
                    }
                     
                                        //删除订单文件夹
                                        string parentFolder = folderToDelete.Remove(folderToDelete.LastIndexOf('/'));
                                        string orderFolder  = folderToDelete.Substring(folderToDelete.LastIndexOf('/') + 1);

                                        fw.GotoDirectory(parentFolder, true);
                                        fw.RemoveDirectory(orderFolder);
                                    
                }
                                else
                                 {
                    Insert_Standard_ErrorLog.Insert("FTP 及路径不能为空!");
                                    
                }
                            
            }
                        catch(Exception ex)
                         {
                Insert_Standard_ErrorLog.Insert("删除订单时发生错误,错误信息为:" + ex.Message);
                            
            }
                    
        }
Exemple #9
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("GetFileList Error --> " + ex.Message.ToString());
                                    
                }
                                return downloadFiles;

                            
            }
                    
        }