在這邊要說明的是,如何在FTP目錄內將檔案複製至其它目錄(非local),以達到檔案間的複
製操作!
在這邊使用的套件為:FTPClient - EnterpriseDT
一般來說我們通常會針對FTP做基本的上傳及下載檔案的操作,而如果您要在FTP上直接將
檔案做copy至其它線上的目錄的話,在此將利用該套件API的get method,只不過需使用的
是回傳byte array,而並非指定localFile的。
當您取得了檔案的位元組資料後,此時您要將資料寫入至指定的目錄,此時可以查閱put
method,但我們這邊的來源已經不是localFile,而是剛剛的byte array。
製操作!
在這邊使用的套件為:FTPClient - EnterpriseDT
一般來說我們通常會針對FTP做基本的上傳及下載檔案的操作,而如果您要在FTP上直接將
檔案做copy至其它線上的目錄的話,在此將利用該套件API的get method,只不過需使用的
是回傳byte array,而並非指定localFile的。
byte[] | get(java.lang.String remoteFile) Get data from the FTP server. |
void | get(java.lang.String localPath, java.lang.String remoteFile) Get data from the FTP server. |
節錄至API文件
當您取得了檔案的位元組資料後,此時您要將資料寫入至指定的目錄,此時可以查閱put
method,但我們這邊的來源已經不是localFile,而是剛剛的byte array。
java.lang.String | put(byte[] bytes, java.lang.String remoteFile) Put data onto the FTP server. |
java.lang.String | put(java.lang.String localPath, java.lang.String remoteFile) Put a local file onto the FTP server. |
節錄至API文件
PS. 若檔案存在將會複寫過去!!
簡單的範例如下:
執行結果如下:
簡單的範例如下:
private static FTPClient ftp;
static String FTP_SERVER="127.0.0.1";
static String FTP_ID="test";
static String FTP_PW="test";
static String FTP_DIR = "FTPTest";
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ftp=new FTPClient();
System.out.println("正在連線到...." + FTP_SERVER);
try {
ftp.setRemoteHost(FTP_SERVER);
ftp.connect();
ftp.login(FTP_ID,FTP_PW);
ftp.setConnectMode(FTPConnectMode.PASV);
ftp.setType(FTPTransferType.BINARY);
System.out.println("切換目錄到:"+FTP_DIR);
ftp.chdir(FTP_DIR);
System.out.println("連線成功....");
ftp.chdir("TYPE_2//KIND_3");
byte[] fileTmp = ftp.get("123.doc");
FTPReply reply=ftp.sendCommand("CDUP");
System.out.println(reply.getReplyText());
ftp.put(fileTmp, "1235.doc");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
ftp.quit();
System.out.println("關閉FTP連線!!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FTPException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
執行結果如下:
留言
張貼留言