2012-07-20 46 views
1

使用下面的程序,我可以上傳zip文件在FTP服務器上。 但它使zip文件的副本上傳到ftp服務器上。 我想它應該刪除本地系統中的文件,並將其複製到服務器即它應該文件被複制在FTP服務器中不移動在java

public class UploadFile { 
     public static void main(String args[]) 
     {  
      FTPClient ftp=new FTPClient(); 
      try {   
       int reply; 

       ftp.connect("ipadddress"); 

       ftp.login("abc", "abc"); 

       reply = ftp.getReplyCode(); 
       System.out.println("reply1" + reply); 
       if(!FTPReply.isPositiveCompletion(reply)) 
       {    
        ftp.disconnect();     
       }   
       System.out.println("FTP server connected."); 
       ftp.setFileType(FTP.BINARY_FILE_TYPE); 
       InputStream input= new FileInputStream("D:\\testencrypted.zip"); 
       String dirTree="/Vel"; 
       boolean dirExists = true; 
       String[] directories = dirTree.split("/"); 
       for (String dir : directories) 
       { 
        if (!dir.isEmpty()) 
        { 
         if (dirExists) 
         { 
          dirExists = ftp.changeWorkingDirectory(dir); 
         } 
         else if (!dirExists) 
         { 

          System.out.println("dir tree" + ftp.printWorkingDirectory()); 


          if (!ftp.makeDirectory(dir)) 
          { 

           throw new IOException("Unable to create remote directory '" + dir + "'. error='" + ftp.getReplyString()+"'"); 
           } 
          if (!ftp.changeWorkingDirectory(dir)) 
          { 

           throw new IOException("Unable to change into newly created remote directory '" + dir + "'. error='" + ftp.getReplyString()+"'"); 
          } 
          System.out.println("dir tree" + ftp.printWorkingDirectory()); 

         } 

         } 
        }  

       ftp.storeFile(dirTree+"/t1.zip",input); 
       input.close(); 
       ftp.logout();   
       } 
      catch(Exception e) 
       {      
       System.out.println("err"+ e);    
       } 
      finally 
      { 
       if(ftp.isConnected()) 
       { 
        try 
        { 
         ftp.disconnect(); 

        } 
        catch(Exception ioe) 
        { 

        } 

       } 

      } 
      } 
    } 

回答

1

所以不移動copy.Please文件指導,一旦你完成了上傳(和你確定它是成功的,只需使用File.delete()從本地磁盤上刪除文件。

File sourceFile = new File("D:\\testencrypted.zip");  
InputStream input= new FileInputStream(sourceFile); 

// Upload the file... 
// Make sure you close the input stream first ;) 

if (!sourceFile.delete()) { 

    System.out.println("Failed to delete " + sourceFile + " from local disk"); 
    sourceFile.deleteOnExit(); // try and delete on JVM exit... 

}