URL、ユーザー名、パスワード、FTPファイルサーバへのアップロードファイルによると、

1. URL、ユーザー名、パスワードを初期化するためによると

パブリッククラスFtpTools {
パブリック静的文字列のホスト名= NULL;
パブリック静的整数ポート= NULL;
公共の静的な文字列名= nullの;
公共の静的な文字列のパスワード= NULL;
公共の静的な初期化無効(文字列hostname1、整数portlを、文字列のUSERNAME1、文字列のパスワード1){
// FTPサーバーのアドレス
、ホスト名= hostname1;
// FTPサーバーのポート番号のデフォルトは21に
ポート=ポート1; // 21;
// ftpのログインアカウント
のユーザー名= USERNAME1; //
// FTPパスワード
パスワード=パスワード1; //
}
公衆fTPClient ftpClient = nullを静的;
/ **
* ftpサーバの初期化
* /
パブリック静的な無効initFtpClient(){
ftpClient fTPClient新しい新=();
ftpClient.setControlEncoding( "UTF-8");
{トライ
するSystem.out.println( "接続中... FTPサーバーを:" +ホスト名+ ":" +ポート);
ftpClient.connect(ホスト名、ポート); //接続FTPサーバー
ftpClient.login(ユーザ名、パスワード); / /ログインftpサーバ
; int型replyCode = ftpClient.getReplyCode()//成功したログイン・サーバ
(!FTPReply.isPositiveCompletion(replyCode)){IF
のSystem.out.println( "接続が... FTPサーバーを失敗しました:" +ホスト名+「: "ポート+);
}
System.out.printlnは("接続successfu ... FTPサーバ: "+ホスト名+":「+ポート);
}キャッチ(例外:MalformedURLException E){
e.printStackTrace();
}キャッチ(IOExceptionをE) {
e.printStackTrace();
}
}

/ **
*ファイルのアップロード
* @paramパス名、FTPサービスの保存アドレス
* @param fileNameにアップロードされたFTPのファイル名に
名前(絶対アドレス)* @paramのoriginfilenameファイルをアップロードする*
* @return
* /
パブリック静的uploadFileブール(文字列のパス名、文字列のファイル名、文字列のoriginfilename){
旗ブール=偽;
InputStream InputStreamは= nullを
試し{
System.out.printlnは() "アップロードファイルを起動する";
InputStreamの=新しい新しいFileInputStreamを(新しい新しいファイル(originfilename));
initFtpClient();
ftpClient .setFileType(ftpClient.BINARY_FILE_TYPE);
CreateDirecroty(パス名);
ftpClient.makeDirectory(パス名);
ftpClient.changeWorkingDirectory(パス名);
ftpClient.storeFile(ファイル名を値、INPUTSTREAM)。
inputStream.close();
ftpClient.logout();
真=へのフラグ;
System.out.printlnは( "成功したアップロードファイル");
}キャッチ(例外E){
System.out.printlnは( "失敗したファイル");
E .printStackTrace();
}最後に{
IF(ftpClient.isConnected()){
試み{
ftpClient.disconnect();
}キャッチ(IOExceptionをE){
e.printStackTrace();
}
}
IF(!のinputStream = NULL){
試み{
inputStream.close();
}キャッチ(IOExceptionをE){
e.printStackTrace();
}
}
}
真への復帰が;
}
/ **
*アップロード
アドレス保存* @paramパス名、FTPサービス
*ファイル名に@param fileNameにFTPアップロード
* @Param InputStreamの入力ストリームファイル
* @return
* /
パブリックブールuploadFile(パス名の文字列、文字列のファイル名、InputStream InputStreamは){
falseにブール=で旗;
試み{
System.out.printlnは( "スタートファイルをアップロード");
initFtpClient();
ftpClient.setFileType(ftpClient.BINARY_FILE_TYPE);
CreateDirecroty(パス名);
ftpClient.makeDirectory(パス名);
ftpClient.changeWorkingDirectory(パス名);
ftpClient.storeFile(ファイル名を値、INPUTSTREAM);
inputStream.close();
ftpClient.logout()
内のフラグ;真=へ
のSystem.out.println( "成功したアップロードファイル");
}キャッチ(例外E){
System.out.printlnは( "失敗したファイル");
e.printStackTrace();
} {最後に
(ftpClient.isConnected()){もし
試み{
ftpClient.disconnect()。
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}
}
もし(!= NULLのinputStream){
試み{
inputStream.close()。
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}
}
}
trueを返します。
}
//改变目录路径
changeWorkingDirectory(文字列ディレクトリ){ブールパブリック静的
真のブールフラグ=。
トライ{
フラグ= ftpClient.changeWorkingDirectory(ディレクトリ)。
もし(フラグ){
System.out.printlnは( "进入文件夹" +ディレクトリ+ "成功!");

} {他
のSystem.out.println( "フォルダに" +ディレクトリ+ "失敗したフォルダの作成を開始!");
}
}キャッチ(IOExceptionをIOE){
ioe.printStackTraceを();
}
フラグを返します。
}

//ファイルがすでに存在する場合は、FTPサーバーを多層ディレクトリのファイルを作成して作成されていない、そうでない場合は、作成
(リモートString)をパブリック静的ブールCreateDirecrotyをIOExceptionが{スロー
trueにブール=成功;
文字列=リモートディレクトリ+「/」 ;
//リモートディレクトリを再帰的にリモートサーバのディレクトリを作成し、存在しない場合
のIF(directory.equalsIgnoreCase( "/")&& changeWorkingDirectory(新しい新しい文字列(ディレクトリ))!!){
int型スタート= 0;
int型のエンド= 0;
IF( directory.startsWith( "/")){
START = 1;
} {他
スタート= 0;
}
エンド= directory.indexOf( "/"、スタート);
文字列のパス= "";
文字列のパス= "";
一方、(trueに){
文字列=サブディレクトリ新しい新しいString(remote.substring(開始、終了).getBytes( "GBK")、 "ISO-8859-1");
パス=パス+「/」+サブディレクトリ。
IF(existFile(パス)!){
IF(makeDirectory(サブディレクトリ)){
changeWorkingDirectory(サブディレクトリ)。
} {他
のSystem.out.println( "创建目录[" +サブディレクトリ+ "]失败")。
changeWorkingDirectory(サブディレクトリ)。
}
}他{
changeWorkingDirectory(サブディレクトリ)。
}

+ =パスパス"/" +サブディレクトリ、
開始終了= + 1;
エンド= directory.indexOf( "/"、スタート);
//ディレクトリが全てのために作成されているかどうかをチェックする
IF(完<=スタート){
BREAK;
}
}
}
成功リターン;
}

// FTPサーバーは、ファイルが存在するか否かを判定する
existfileパブリック静的ブール値(文字列のパス)にIOException {スロー
falseにブール=でフラグを、
FTPFILE [] = ftpFileArr ftpClient.listFiles(パス);
IF(ftpFileArr.length> 0){
trueに、フラグ=;
}
旗の見返りとして;
}
//は、ディレクトリを作成し
、パブリック静的ブールMakeDirectory(文字列ディレクトリを){
trueにブール=で旗;
試し{
のフラグ= ftpClient.makeDirectory(DIR);
IF(のフラグ){
System.out.printlnはは(+ "フォルダの作成" DIR + "成功!");

他の{}
のSystem.out.println( "失敗した!" + DIR + "フォルダの作成");
}
}キャッチ(例外E){
e.printStackTrace();
}
フラグにリターン;
}

/ * ** *ダウンロードファイル
* @paramパス名FTPサーバのディレクトリファイル*
* @paramファイル名のファイル名*
ファイルのダウンロード*後* @paramのlocalPathにパス
* @return * /
パブリックブールdownloadFile(パス名の文字列、文字列のファイル名、文字列localPathに){
;ブール=フラグにfalseに
OutputStreamを= nullのOS;
試し{
System.out.printlnは( "ファイルのダウンロードを開始する");
initFtpClient();
//スイッチFTPディレクトリ
ftpClient.changeWorkingDirectory(パス名);
FTPFILE [] = ftpFiles ftpClient.listFiles();
(ファイルFTPFILE用:ftpFiles){
IF(filename.equalsIgnoreCase(file.getName())){
ファイルLOCALFILE =新しいファイル(localPathに+ "/" + file.getName())。
OS =新しいのFileOutputStream(LOCALFILE)。
ftpClient.retrieveFile(file.getName()、OS)。
os.close();
}
}
ftpClient.logout()。
フラグが真=。
System.out.println( "下载文件成功");
}キャッチ(例外e){
System.out.printlnは( "下载文件失败")。
e.printStackTrace();
}最後に{
IF(ftpClient.isConnected()){
試み{
ftpClient.disconnect()。
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}
}
もし(!= NULL OS){
試み{
にos.close()。
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}
}
}
;旗を返す
}

/ ** *ファイルの削除*
* @paramパス名FTPサーバのディレクトリを保存します*
*削除する* @paramファイル名、ファイル名
* @return * /
DELETEFILEブールのpublic static(文字列パス名、文字列のファイル名){
boolean型フラグ= falseは、
試してみる{
System.out.printlnは( "ファイルの削除開始");
initFtpClient();
//は、FTPディレクトリ切り替える
ftpClient.changeWorkingDirectory(パス名)を、
ftpClient.dele(ファイル名);
ftpClient .logout()
内のフラグ真=まで;
のSystem.out.println( "ファイルが正常に削除されている");
}キャッチ(例外e){
System.out.printlnは( "削除ファイルに失敗しました");
e.printStackTrace();
}最後に{
(ftpClient.isConnected()){もし
試み{
ftpClient.disconnect()。
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}
}
}
フラグを返します。
}
}

 

初期設定が完了したら、直接など、フォルダを作成し、ファイルやフォルダを削除するには、FTPファイルサーバに対応する操作を呼び出すことができます

例:

まず、初期化します。

FtpTools.init( "###"、21、 "###"、 "###"); // 21、デフォルトのポート番号は21です

OKのファイルアップロードのメソッド呼び出し

FtpTools.uploadFile( "/ HD /エクスポート"、pdfFilePath、パス+ "\\" + pdfFilePath)。

 

おすすめ

転載: www.cnblogs.com/JavaYB/p/11978767.html