上传目录到FTP(安卓)

3

我希望将文件夹上传到我的FTP服务器。

这是我用来上传“单个文件”到FTP服务器的代码,我想知道是否有办法帮助我上传此文件夹“mnt/sdcard/DCIM/Camera”中的所有图片“.jpg”到我的FTP服务器。

public static final String TAG = "Contacts";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Thread t = new Thread(new Runnable(){
        @Override
        public void run(){
            jetzt();
        }
    });
    t.start();
    Log.i(TAG, "thread started");

}

public void jetzt(){
    FTPClient ftpClient = new FTPClient();
    try {
        ftpClient.connect("HOST SERVER IP");

        ftpClient.setSoTimeout(10000);
        ftpClient.enterLocalPassiveMode();
        if(ftpClient.login(" LOGIN ", " PASSWORD "))
        {
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
            ftpClient.setFileTransferMode(FTP.BINARY_FILE_TYPE);
            File sFile=new File("mnt/sdcard/DCIM/Camera/mypicture.jpg");
            FileInputStream fs= new FileInputStream(sFile);
            String fileName = sFile.getName();
            Boolean result = ftpClient.storeFile(fileName, fs);
            fs.close();
            Log.i(TAG, "sent");
            String has = "";
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}

2个回答

1

谢谢你的回答,Martin。你能修改我的代码吗?因为我在Java方面的水平非常低。 - J.mayer
请查看另一个答案。 - ashubuntu

1

您可以使用此修改后的函数:

public void jetzt() {
    FTPClient ftpClient = new FTPClient();
    try {
        ftpClient.connect("HOST SERVER IP");

        ftpClient.setSoTimeout(10000);
        ftpClient.enterLocalPassiveMode();
        if (ftpClient.login(" LOGIN ", " PASSWORD ")) {
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
            ftpClient.setFileTransferMode(FTP.BINARY_FILE_TYPE);

            final File folder = new File("mnt/sdcard/DCIM/Camera");

            for (final File fileEntry : folder.listFiles()) {
                try {
                    FileInputStream fs = new FileInputStream(fileEntry);
                    if (!fileEntry.isDirectory()) {
                        String fileName = fileEntry.getName();
                        ftpClient.storeFile(fileName, fs);
                        fs.close();
                        Log.i(TAG, "sent");
                    }
                } catch (Exception e) {
                    Log.i(TAG, "error uploading");
                }
            }
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接