2017-01-08 3 views
1

Я хочу загрузить каталог на свой FTP-сервер.Загрузить каталог на FTP (Android)

Это код, который я использую для загрузки «одного файла» на свой ftp-сервер, я хочу знать, есть ли что-то, что может помочь мне загрузить все фотографии «.jpg» в этой папке «mnt/sdcard/DCIM/Camera "на мой 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

Вы можете использовать эту модифицированную функцию:

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(); 
    } 
} 
+1

Блестящий !!! Я молю Бога заботиться о вас и ваших детях. –

0

Там нет функции, чтобы загрузить весь каталог в FTPClient class.

Вы должны:

  • Перечислять все файлы в каталоге.
    Для этого см. Read all files in a folder.

  • Загрузите их по одному.

+0

Спасибо за ваш ответ мартеновской. вы можете изменить мой код, потому что у меня очень низкий уровень в java. –

+0

проверить другой ответ – ashubuntu

+0

спасибо за вашу помощь martin, God Bless you. –

Смежные вопросы