java - 文件被复制到FTP服务器上而不是在java中移动

标签 java ftp ftp-client

使用下面的程序我可以在 ftp 服务器上上传 zip 文件。 但它会复制 zip 文件并将文件上传到 ftp 服务器上。 我希望它应该从本地系统删除文件并将其复制到服务器,即它应该移动文件而不是复制。请指导

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)
                    {

                    }

                }

            }
            } 
    }

最佳答案

因此,一旦您完成上传(并且您确定上传成功,只需使用 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...

}

关于java - 文件被复制到FTP服务器上而不是在java中移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11573921/

相关文章:

java - 它在位运算中代表什么?

java - 如何在页面上配置没有登录服务的Spring Social

java - 标准(非灵活)Google App Engine 是否支持 Google Cloud Bigtable?

java - 如何使用 FTP 知道服务器上的文件是否完整?

java - 使用 FTPClient 检查目录是否存在

java - 在哪里可以找到 Android java.lang.Process waitFor() 退出代码的引用?

java - SSL 握手异常 : Received fatal alert: handshake_failure ( ignores ciphers)

mysql - 将来自不同服务器的多个 FTP 和 SQL DB 连接在一起(共享资源)

java - org.apache.commons.net.ftp.FTPClient listFiles() 问题

java - Android 上传图像到 ftp 服务器不起作用