2013-07-11 40 views
0

我正在嘗試編寫一個遞歸函數,它將一個目錄完全上傳到ftp服務器上。我需要檢查我上傳的目錄是否已經存在,因此我需要檢查目錄是否存在。但在ftp4j中,我無法找到任何此類功能。使用ftp4j上傳目錄

代碼:

if(!upclient.isConnected()){ 
    upclient.connect(ftp_ip); 
    upclient.login(ftp_login, ftp_pass); 
} 
//i want to check here if the dir exit..if no i will create one 
upclient.changeDirectory(ftpupload_path); 
if (upclient.isConnected()) { 
    System.out.println("Connected to " + ftp_ip); 
    File local_dir=new File(local_path); 
    File[] uploadFiles=local_dir.listFiles(); 
    for (File uploadfile : uploadFiles) { 
     if(uploadfile.isFile()){ 
      System.out.println("Uploading" + upclient.currentDirectory() + "/" + uploadfile.getName()); 
    upclient.upload(uploadfile); 
     } else if(uploadfile.isDirectory()){ 
      uploadDir(ftp_ip, ftp_login, ftp_pass,upclient.currentDirectory()+"/"+uploadfile.getName(), uploadfile.getAbsolutePath()); 
      upclient.changeDirectory(ftpupload_path); 
     } 
    } 
} 

回答

2

如果你想檢查目錄是否存在,如果不創建它,您可以使用此代碼:

try { 
    upclient.changeDirectory(dir); 
} catch(FTPException e) { 
    upclient.createDirectory(dir); 
    upclient.changeDirectory(dir); 
}