string oldname = this.FileUpload1.PostedFile.FileName; string newname = dd + h + mm + ss + oldname.Substring( " /> 久久中文资源,国产成人精品免费网站,国产精品区一区二区三含羞草

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

asp.net 一個封裝比較完整的FTP類

先看這個簡單的
復制代碼 代碼如下:
FTP ftp = new FTP("192.168.1.117", "ahuinan", "123456");

string oldname = this.FileUpload1.PostedFile.FileName;
string newname = dd + h + mm + ss + oldname.Substring(oldname.LastIndexOf("."));


// ftp.Connect();
ftp.OpenUpload(oldname,newname);
while (ftp.DoUpload() > 0)
{
int perc = (int)(((ftp.BytesTotal) * 100) / ftp.FileSize);
Response.Write(perc.ToString() + "%<br/>");
Response.Flush();
}


功能

ü         建立FTP鏈接

ü         支持代理

ü         多種重載的同步上傳文件

ü         多種重載的異步上傳文件

ü         多種重載的同步下載文件

ü         多種重載的異步下載文件

ü         上傳文件的進度百分比

ü         下載文件的進度白分比

ü         有區分的列出目錄或者文件的信息(考慮到MS DOS顯示格式和UNIX格式)

ü         目錄或文件存在的判斷

ü         刪除文件

ü         重命名文件、目錄

ü         在FTP服務器上面拷貝、移動文件(許多人可能在苦苦尋找這個功能)

ü         建立、刪除目錄

ü         目錄切換操作(很新穎哦 J)

 

公共構造函數

名稱

說明

clsFTP()

初始化clsFtp類的新實例

clsFTP(Uri FtpUri, string strUserName, string strPassword)

由FTP地址、FTP登錄用戶信息、FTP登錄用戶密碼初始化clsFtp類的新實例

clsFTP(Uri FtpUri, string strUserName, string strPassword, WebProxy objProxy)

由FTP地址、FTP登錄用戶信息、FTP登錄用戶密碼、代理服務器對象初始化clsFtp類的新實例

 

 

 

 

公共屬性

名稱

說明

Uri

獲取或設置FTP服務器地址

DirectoryPath

獲取當前工作目錄

UserName

獲取或設置FTP登錄用戶

Password

獲取或設置FTP登錄密碼

Proxy

獲取或設置連接FTP服務器的代理服務

ErrorMsg

獲取操在返回的錯誤信息

 

 

公共方法

名稱

說明

DownloadFile(string RemoteFileName, string LocalPath)

從FTP服務器下載文件,使用與遠程文件同名的文件名來保存文件。

參數說明:

RemoteFileName: 遠程文件名

LocalPath: 本地路徑

DownloadFile(string RemoteFileName, string LocalPath, string LocalFileName)

從FTP服務器下載文件,指定本地路徑和本地文件名。

參數說明:

LocalPath: 本地路徑

LocalFilePath: 保存文件的本地路徑,后面帶有"/"

LocalFileName: 保存本地的文件名

DownloadFile(string RemoteFileName)

從FTP服務器下載文件,返回文件二進制數據。

參數說明:

RemoteFileName: 遠程文件名

DownloadFileAsync(string RemoteFileName, string LocalPath, string LocalFileName)

從FTP服務器異步下載文件,指定本地路徑和本地文件名。

參數說明:

RemoteFileName: 遠程文件名       

LocalPath: 保存文件的本地路徑,后面帶有"/"

LocalFileName: 保存本地的文件名

DownloadFileAsync(string RemoteFileName, string LocalFullPath)

從FTP服務器異步下載文件,指定本地完整路徑文件名。

參數說明:

RemoteFileName: 遠程文件名

LocalFullPath: 本地完整路徑文件名

UploadFile(string LocalFullPath)

上傳文件到FTP服務器。

參數說明:

LocalFullPath: 本地帶有完整路徑的文件名

UploadFile(string LocalFullPath, bool OverWriteRemoteFile)

上傳文件到FTP服務器

參數說明:

LocalFullPath: 本地帶有完整路徑的文件

OverWriteRemoteFile: 是否覆蓋遠程服務器上面同名的文件

UploadFile(string LocalFullPath, string RemoteFileName)

上傳文件到FTP服務器

參數說明:

LocalFullPath: 本地帶有完整路徑的文件

RemoteFileName: 要在FTP服務器上面保存文件名

UploadFile(string LocalFullPath, string RemoteFileName, bool OverWriteRemoteFile)

上傳文件到FTP服務器。

參數說明:

LocalFullPath: 本地帶有完整路徑的文件名

RemoteFileName: 要在FTP服務器上面保存文件名

OverWriteRemoteFile: 是否覆蓋遠程服務器上面同名的文件

UploadFile(byte[] FileBytes, string RemoteFileName)

上傳文件到FTP服務器

參數說明:

FileBytes: 上傳的二進制數據

RemoteFileName: 要在FTP服務器上面保存文件名

UploadFile(byte[] FileBytes, string RemoteFileName, bool OverWriteRemoteFile)

上傳文件到FTP服務器

參數說明:

FileBytes: 文件二進制內容

RemoteFileName: 要在FTP服務器上面保存文件名

OverWriteRemoteFile: 是否覆蓋遠程服務器上面同名的文件

UploadFileAsync(string LocalFullPath)

異步上傳文件到FTP服務器

參數說明:

LocalFullPath: 本地帶有完整路徑的文件名

UploadFileAsync(string LocalFullPath, bool OverWriteRemoteFile)

異步上傳文件到FTP服務器

參數說明:

LocalFullPath: 本地帶有完整路徑的文件

OverWriteRemoteFile: 是否覆蓋遠程服務器上面同名的文件

UploadFileAsync(string LocalFullPath, string RemoteFileName)

異步上傳文件到FTP服務器。

參數說明:

LocalFullPath: 本地帶有完整路徑的文件

RemoteFileName: 要在FTP服務器上面保存文件名

UploadFileAsync(string LocalFullPath, string RemoteFileName, bool OverWriteRemoteFile)

異步上傳文件到FTP服務器。

參數說明:

LocalFullPath: 本地帶有完整路徑的文件名

RemoteFileName: 要在FTP服務器上面保存文件名

OverWriteRemoteFile: 是否覆蓋遠程服務器上面同名的文件

UploadFileAsync(byte[] FileBytes, string RemoteFileName)

異步上傳文件到FTP服務器。

參數說明:

FileBytes: 上傳的二進制數據

RemoteFileName: 要在FTP服務器上面保存文件名

UploadFileAsync(byte[] FileBytes, string RemoteFileName, bool OverWriteRemoteFile)

異步上傳文件到FTP服務器。

參數說明:

FileBytes: 文件二進制內容

RemoteFileName: 要在FTP服務器上面保存文件名

OverWriteRemoteFile: 是否覆蓋遠程服務器上面同名的文件

ListFilesAndDirectories()

列出FTP服務器上面當前目錄的所有文件和目錄。

ListFiles()

列出FTP服務器上面當前目錄的所有文件。

ListDirectories()

列出FTP服務器上面當前目錄的所有的目錄。

DirectoryExist(string RemoteDirectoryName)

判斷當前目錄下指定的子目錄是否存在。

參數說明:

RemoteDirectoryName: 指定的目錄名

FileExist(string RemoteFileName)

判斷一個遠程文件是否存在服務器當前目錄下面。

參數說明:

RemoteFileName: 遠程文件名

DeleteFile(string RemoteFileName)

從FTP服務器上面刪除一個文件。

參數說明:

RemoteFileName: 遠程文件名

ReName(string RemoteFileName, string NewFileName)

更改一個文件的名稱或一個目錄的名稱。

參數說明:

RemoteFileName: 原始文件或目錄名稱

NewFileName: 新的文件或目錄的名稱

CopyFileToAnotherDirectory(string RemoteFile, string DirectoryName)

把當前目錄下面的一個文件拷貝到服務器上面另外的目錄中,注意,拷貝文件之后,當前工作目錄還是文件原來所在的目錄。

參數說明:

RemoteFile: 當前目錄下的文件名

DirectoryName: 新目錄名稱。

 說明:如果新目錄是當前目錄的子目錄,則直接指定子目錄。如: SubDirectory1/SubDirectory2 ;

 如果新目錄不是當前目錄的子目錄,則必須從根目錄一級一級的指定。如:./NewDirectory/SubDirectory1/SubDirectory2

MoveFileToAnotherDirectory(string RemoteFile, string DirectoryName)

把當前目錄下面的一個文件移動服務器上面另外的目錄中,注意,移動文件之后,當前工作目錄還是文件原來所在的目錄。

參數說明:

RemoteFile: 當前目錄下的文件名

DirectoryName: 新目錄名稱。

 說明:如果新目錄是當前目錄的子目錄,則直接指定子目錄。如: SubDirectory1/SubDirectory2 ;

 如果新目錄不是當前目錄的子目錄,則必須從根目錄一級一級的指定。如:./NewDirectory/SubDirectory1/SubDirectory2

MakeDirectory(string DirectoryName)

在FTP服務器上當前工作目錄建立一個子目錄。

參數說明:

DirectoryName: 子目錄名稱

RemoveDirectory(string DirectoryName)

從當前工作目錄中刪除一個子目錄。

參數說明:

DirectoryName: 子目錄名稱

IsValidPathChars(string DirectoryName)

判斷目錄名中字符是否合法。

參數說明:

DirectoryName: 目錄名稱

IsValidFileChars(string FileName)

判斷文件名中字符是否合法。

參數說明:

FileName: 文件名稱

GotoDirectory(string DirectoryName)

進入一個目錄。

參數說明:

DirectoryName:

 新目錄的名字。

 說明:如果新目錄是當前目錄的子目錄,則直接指定子目錄。如: SubDirectory1/SubDirectory2 ;

 如果新目錄不是當前目錄的子目錄,則必須從根目錄一級一級的指定。如:./NewDirectory/SubDirectory1/SubDirectory2

EnterOneSubDirectory(string DirectoryName)

從當前工作目錄進入一個子目錄。

參數說明:

DirectoryName: 子目錄名稱

ComeoutDirectory()

從當前工作目錄往上一級目錄。

 

 

 

公共事件

名稱

說明

DownloadProgressChanged

異步下載進度發生改變觸發的事件

DownloadDataCompleted

異步下載文件完成之后觸發的事件

UploadProgressChanged

異步上傳進度發生改變觸發的事件

UploadFileCompleted

異步上傳文件完成之后觸發的事件

 

 

 

其他說明

序號

說明

1

支持代理服務器。

可以顯式地給Proxy屬性賦值;也可以在構造函數中傳遞Proxy對象。如果代理需要登錄用戶和密碼,則設置Proxy的Credentials屬性,例如:

Proxy.Credentials = new NETworkCredential(UserName, Password)

如果沒有代理,則無需給Proxy屬性賦值或者在構造函數中無需傳遞Proxy參數。

2

下載文件和上傳文件大小最大受Int32.MaxValue限制,所以最大處理只能是2,147,483,647字節。如果您想處理更大的文件,請自己修改代碼中對文件打開和讀寫操作部分的代碼使其適應您的要求。

3

只有在異步上傳文件或者異步下載文件的時候,才支持進度百分比觸發事件和下載(上傳)完成事件。

4

由于服務器未發送文件大小,因此被動 FTP 文件傳輸總是將進度百分比顯示為零。若要顯示進度,可以通過重寫 GetWebRequest 虛擬方法來將 FTP 連接更改為活動狀態。所以,我們在clsFTP類中另外使用內部類MyWebClient

 

5

在列出文件和目錄的時候,clsFTP類區分出了所獲得的響應數據哪些是文件,哪些是目錄。同時,考慮到了FTP服務器上面目錄樣式為MS DOS和UNIX兩種表現形式的不同。

6

支持在FTP服務器上面不同目錄之間移動文件和拷貝文件的功能。移動文件的方法比較巧妙,只是拷貝文件所使用的方法不太理想。

 

 

 

 

打包下載 discuz的比較好用

AspNet技術asp.net 一個封裝比較完整的FTP類,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 山阳县| 西宁市| 沙洋县| 八宿县| 县级市| 临江市| 建昌县| 吴忠市| 高邑县| 思南县| 宁波市| 介休市| 茂名市| 衡阳县| 阜南县| 上思县| 武定县| 太仓市| 鄢陵县| 普宁市| 罗城| 双鸭山市| 鄂托克前旗| 彭阳县| 中阳县| 濉溪县| 东台市| 万全县| 新巴尔虎右旗| 册亨县| 旺苍县| 万全县| 和政县| 奉节县| 临城县| 淮南市| 铜鼓县| 青川县| 长寿区| 靖远县| 资中县|