[Java]FTP接続
前に試作したFTPのクラス。
そのままコピペして動く!というようにはしてませんが
(import文とかセッターゲッターは省略してますし、呼び出し元は載せてません)
尚FTPでのやり方です。FTPSの場合はクラスをFTPSClientに変更してくださ~い
public class FTPsample { /** ユーザ名 */ private String user; /** パスワード */ private String pass; /** サーバー名 */ private String server; /** サーバー側ディレクトリ*/ private String serverDir; /** サーバー側ファイル名 */ private String serverFileName; /** ローカルディレクトリ*/ private String localDir; /** ローカルファイル名*/ private String localFileName; /** * FTPサーバーに接続 * * @return FTPClientオブジェクト * @throws IOException */ public FTPClient connect() throws IOException { FTPClient ftpClient = new FTPClient(); ftpClient.connect(server); ftpClient.enterLocalPassiveMode(); // お好みのミリセカンドでタイムアウトを設定 // int ms = 300000; ftpClient.setSoTimeout(ms); // ログイン //TODO:ログイン失敗したときの処理も入れてね ftpClient.login(user, pass); System.out.println(server + "に接続しました"); //接続をパッシブモードに ftpClient.enterLocalPassiveMode(); //もしアクティブモードで接続したい場合はこう frpClient.enterLocalActiveMode(); //ディレクトリの移動 //TODO:フォルダなかったときの処理も入れてね ftpClient.changeWorkingDirectory(serverDir); System.out.println(serverDir + "に移動しました"); // バイナリモードで転送処理を行う設定 if (!ftpClient.setFileType(FTP.BINARY_FILE_TYPE)) { throw new RuntimeException("[Error]setFileType failure"); } System.out.println("ファイルタイプをバイナリに設定しました"); return ftpClient; } /** * ファイルをダウンロード * * @param FTPクライアントのインスタンス * @return 取得したFileを表すFileオブジェクト */ public File download(FTPClient ftpClient) throws IOException { // 保存先とファイル名を設定 File saveFile = new File(localDir + File.separator + localFileName); // お好みのミリセカンドでタイムアウトを設定 // int ms = 600000; // ftpClient.setDataTimeout(ms); // ファイル取得 // TODO:取得失敗したときのry ftpClient.retrieveFile(serverFileName, os); return saveFile; } /** * ファイルをアップロード * * @return ローカルファイルのFileオブジェクト */ public File upload(FTPClient ftpClient, File file) throws IOException { InputStream inputStream = new FileInputStream(file)) { //ファイル送信 // TODO:送信失敗したときのry ftpsClient.storeFile(file.getName(), inputStream); } } /** * FTP接続を閉じる */ public File close(FTPClient ftpClient) throws IOException { if (ftpsClient != null && ftpsClient.isConnected()) { ftpsClient.logout(); ftpsClient.disconnect(); } } } }