簡體   English   中英

使用Java代碼將目錄的多媒體文件下載到我的本地計算機中

[英]Downloading multimedia files of a directory into my local machine using java code

我有一個Java代碼,我將使用該代碼從遠程計算機上的目錄下載文件。現在使用ftp類進行相同的操作。當我運行該代碼導致所有文件都被下載時會出現問題但是當我看到它們的大小時,我看到它們都是零字節並且也不包含任何東西。如果您可以分析這背后的可能原因,請幫忙。

package login.multiple;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.SocketException;

import org.apache.commons.*; 
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;

public class Downloader {

    /**
     * @param args
     * @throws FTPException 
     * @throws FTPIllegalReplyException 
     * @throws IOException 
     * @throws IllegalStateException 
     * @throws FTPListParseException 
     * @throws FTPAbortedException 
     * @throws FTPDataTransferException 
     */
    public static void main(String[] args)  {
        // TODO Auto-generated method stub
        FTPFile[] list = null;
        String fileNames[];
        String path = "\\Users\\XXX\\Documents\\Downloads\\Coldplay - Mylo Xyloto [mp3-vbr-2011]";
        int i = 0;
        FileOutputStream fos = null;
        FTPClient client = new FTPClient();
        //client.connect("192.168.1.2");
        try {
            client.connect("127.0.0.1");
            client.login("xxx", "yyy");
            list = client.listFiles(path);
            for(i=0;i<list.length;i++){
            //for(i=0;i<1;i++){
                fos = new FileOutputStream(list[i].getName());
                client.retrieveFile(path + list[i].getName(), fos);
            }
        } catch (SocketException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        try {
            client.disconnect();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        }
    }

由於您正在打開FileOutputStream ,因此很有可能FileOutputStream負責關閉它。 client.retrieveFile之后添加fos.close() 您的try-catch設計也一團糟。 如果操作正確,它將有助於診斷。 最后,將client.connect 之后的所有內容放入try {...} finally { client.disconnect(); } try {...} finally { client.disconnect(); }並宣布你的main方法throws Exception 那會給您帶來失敗的快速反應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM