国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#操作ftp類完整實例

2020-01-24 01:29:14
字體:
來源:轉載
供稿:網友

本文實例講述了C#操作ftp類。分享給大家供大家參考。具體如下:

using System;using System.Collections.Generic;using System.Text;using System.IO;using System.Net;using System.Globalization;namespace FtpTest1{ public class FtpWeb { string ftpServerIP; string ftpRemotePath; string ftpUserID; string ftpPassword; string ftpURI; /// <summary> /// 連接FTP /// </summary> /// <param name="FtpServerIP">FTP連接地址</param> /// <param name="FtpRemotePath">指定FTP連接成功后的當前目錄, 如果不指定即默認為根目錄</param> /// <param name="FtpUserID">用戶名</param> /// <param name="FtpPassword">密碼</param> public FtpWeb(string FtpServerIP, string FtpRemotePath, string FtpUserID, string FtpPassword) {  ftpServerIP = FtpServerIP;  ftpRemotePath = FtpRemotePath;  ftpUserID = FtpUserID;  ftpPassword = FtpPassword;  ftpURI = "ftp://" + ftpServerIP + "/" ; } static void Main() {  //string file = "c://aq3.gifa";  //FileInfo fileInf = new FileInfo(file);  //if (!fileInf.Exists)  //{  // Console.WriteLine(file + " no exists");  //}  //else {  // Console.WriteLine("yes");  //}  //Console.ReadLine();  FtpWeb fw = new FtpWeb("121.11.65.10", "", "aa1", "aa");  string[] filePaths = { "c://aq3.gif1", "c://aq2.gif1", "c://bsmain_runtime.log" };  Console.WriteLine(fw.UploadFile(filePaths));  Console.ReadLine(); } //上傳文件 public string UploadFile( string[] filePaths ) {  StringBuilder sb = new StringBuilder();  if ( filePaths != null && filePaths.Length > 0 ){  foreach( var file in filePaths ){   sb.Append(Upload( file ));  }  }  return sb.ToString(); }  /// <summary> /// 上傳文件 /// </summary> /// <param name="filename"></param> private string Upload(string filename) {  FileInfo fileInf = new FileInfo(filename);  if ( !fileInf.Exists ){  return filename + " 不存在!/n";  }  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.UsePassive = false; //選擇主動還是被動模式  //Entering Passive Mode  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)  {  return "同步 "+filename+"時連接不上服務器!/n";  //Insert_Standard_ErrorLog.Insert("FtpWeb", "Upload Error --> " + ex.Message);  }  return ""; } /// <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 + "http://" + 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);  } } /// <summary> /// 刪除文件 /// </summary> /// <param name="fileName"></param> public void Delete(string fileName) {  try  {  string uri = ftpURI + fileName;  FtpWebRequest reqFTP;  reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));  reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);  reqFTP.KeepAlive = false;  reqFTP.Method = WebRequestMethods.Ftp.DeleteFile;  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 + " 文件名:" + fileName);  } } /// <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());  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("FtpWeb", "GetFilesDetailList Error --> " + ex.Message);  return downloadFiles;  } } /// <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());  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;  } } /// <summary> /// 獲取當前目錄下所有的文件夾列表(僅文件夾) /// </summary> /// <returns></returns> public string[] GetDirectoryList() {  string[] drectory = GetFilesDetailList();  string m = string.Empty;  foreach (string str in drectory)  {  if (str.Trim().Substring(0, 1).ToUpper() == "D")  {   m += str.Substring(54).Trim() + "/n";  }  }  char[] n = new char[] { '/n' };  return m.Split(n); } /// <summary> /// 判斷當前目錄下指定的子目錄是否存在 /// </summary> /// <param name="RemoteDirectoryName">指定的目錄名</param> public bool DirectoryExist(string RemoteDirectoryName) {  string[] dirList = GetDirectoryList();  foreach (string str in dirList)  {  if (str.Trim() == RemoteDirectoryName.Trim())  {   return true;  }  }  return false; } /// <summary> /// 判斷當前目錄下指定的文件是否存在 /// </summary> /// <param name="RemoteFileName">遠程文件名</param> public bool FileExist(string RemoteFileName) {  string[] fileList = GetFileList("*.*");  foreach (string str in fileList)  {  if (str.Trim() == RemoteFileName.Trim())  {   return true;  }  }  return false; } /// <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);  } } /// <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("FtpWeb", "GetFileSize Error --> " + ex.Message);  }  return fileSize; } /// <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);  } } /// <summary> /// 移動文件 /// </summary> /// <param name="currentFilename"></param> /// <param name="newFilename"></param> public void MovieFile(string currentFilename, string newDirectory) {  ReName(currentFilename, newDirectory); }

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 分宜县| 龙井市| 洛宁县| 新田县| 武强县| 泽州县| 弥勒县| 阿拉善右旗| 拜城县| 葵青区| 江源县| 舒城县| 沅陵县| 黄梅县| 辛集市| 澄江县| 石河子市| 明星| 青田县| 台安县| 潮州市| 六枝特区| 克山县| 鄂温| 广西| 宁城县| 平武县| 连南| 航空| 朝阳市| 全南县| 丰都县| 姚安县| 库车县| 孟连| 攀枝花市| 成武县| 湟源县| 静乐县| 双鸭山市| 祁东县|