資源簡(jiǎn)介
由于項(xiàng)目的需要,參照這兒這兒朋友的一些原碼寫的一個(gè)基于Socket的FTP登陸Class.
修正點(diǎn)'
改正了原Class不能正常運(yùn)行Linux系Ftp的BUG
可能實(shí)行PortMode數(shù)據(jù)傳送
加強(qiáng)了接口.
調(diào)用參照'
curFtpClent = new FtpClient();
//HostURL
curFtpClent.HostUrl = this._NfitsConfigDataCopy.DownloadURI;
//サーバのサーバフォルダ
curFtpClent.RemotesubDir = genreInfo.GetDownDir();
//ログインユーザ
curFtpClent.LoginUser = this._NfitsConfigDataCopy.DownloadUser;
//
curFtpClent.PassWord = this._NfitsConfigDataCopy.DownloadPassword;
curFtpClent.LocalDir = genreInfo.ContentTempDirectory;
curFtpClent.PasvMode = (this._NfitsConfigDataCopy.FtpPASV ?
FtpDataTransMode.Pasv : FtpDataTransMode.Port);
// 取得ファイルリストを取得する
curFileCount = curFtpClent.DownLoad();
curFtpClent.DisConnect();

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.IO;
using?System.Net;
using?System.Text;
using?System.Threading;
using?System.Runtime.InteropServices;
using?System.Text.Regularexpressions;
using?System.Net.Sockets;
using?log4net;
namespace?Nfits.Nkcs.Nds.FtpClass
{
????#region???“共通用クラスの定義、 “
????///?
????///?サーバのファイル種類
????///?
????public?enum?FtpFileType
????{
????????File??? ??//ファイル
????????Directory ??//フォルダ
????????Other??? ?//その他(ファイル?フォルダ以外)
????????All???????????//すべて
????}
????///?
????///?サーバフォルダの屬性(絶対パス、
????///?(IP、URL、ルートフォルダ)など親フォルダにり、相対パス
????///?
????public?enum?FtpRemoteDirOption
????{
????????///?
????????///?設(shè)定されるStrHostUrlURLにより、相対パス
????????///?例 StrHostUrl=199.199.199.199/dataの場(chǎng)合、
????????///? ①、直下フォルダ「JNF]をアクセスしよう場(chǎng)合、
????????///? /JNFで、アクセスできる
????????///? ②、直下フォルダ「JNF]の子フォルダ「KK」をアクセスしよう場(chǎng)合、
????????///? /JNF/kkで、アクセスできる
????????///?
????????UrlOpposite?=?0??? //設(shè)定されるU(xiǎn)RLにより、相対パス
????????///?
????????///?Ipアドレスより、相対パス
????????///?例 StrHostUrl=199.199.199.199/dataの場(chǎng)合、
????????///? ①、直下フォルダ「JNF]をアクセスしよう場(chǎng)合、
????????///? /data/JNFで、アクセスできる
????????///? ②、直下フォルダ「JNF]の子フォルダ「KK」をアクセスしよう場(chǎng)合、
????????///? /data/JNF/kkで、アクセスできる
????????///?
????????IpOpposite?=?1??? //Ipアドレスより、相対パス
????????///?
????????///?現(xiàn)狀作業(yè)フォルダに対して、相対パス?
????????///?例 StrHostUrl=199.199.199.199/data、 StrRemoteDir?=?/JNF?の場(chǎng)合、
????????///? ①、直下フォルダ「JNF]の子フォルダ「KK」をアクセスしよう場(chǎng)合、
????????///? /kkで、アクセスできる
????????///?
????????CurWorkDirOpposite?=?2 ????//外部設(shè)定済みフォルダにより、相対パス????
????????///?
????????///?ログインユーザの権限で、見えるルートフォルダより、絶対パス
????????///?例:Linuxの場(chǎng)合、???Var/tmp/xxxx
????????///?????WinDowsの場(chǎng)合、 ?/xxx/
????????///?例 StrHostUrl=199.199.199.199/dataの場(chǎng)合、(ルート権限で、
????????///? /JNF???×
????????///? /var/www/html/dat/USERS/ndscst/JNF??
????????///?
????????Absolutely?=?3 ??//ルートフォルダより、絶対パス(
????}
????///?
????///?通信データタイプ
????///?
????public?enum?FtpTransType
????{
????????//?A=ASCII,E=EBCDIC,I=binary
????????ASCII?=?0
????????BINARY?=?1
????????EBCDIC?=?2
????}
????///?
????///?接続モード(Port、Pasv両方)
????///?
????public?enum?FtpDataTransMode
????{
????????//?ポートモード、パッシプコード、オール
????????Port?=?0
????????Pasv?=?1
????????All?=?2
????}
????///?
????///?サーバのファイルの情報(bào)クラス
????///?
????public?class?FtpFileInfo
????{???//フィアル名
????????public?String?FileName?{?get;?set;?}
????????//ファイルサイズ
????????public?long?fileSize?{?get;?set;?}
????????//ファイルタイプ(ファイル、フォルダ)
????????public?FtpFileType?FileType?{?get;?set;?}
????????//コメント
????????public?String?Perssion?{?get;?set;?}
????????//フォルダの場(chǎng)合、とフォルダ下のファイル(フォルダ)情報(bào)
????????public?List?FileList?{?get;?set;?}
????????//Ftp:// ~/
????????//サーバの格納箇所(
????????public?String?FileRemotePath?{?get;?set;?}
????????//上記フォルダの命名種類
?
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????137408??2011-01-26?10:43??FtpClient_Ver2.cs
評(píng)論
共有 條評(píng)論