2015-03-19 4 views
1

Мне нужно получить все файлы из каталога на моей SD-карте, а затем отправить ArrayList на PHP-сервер, но я сохраняю хороший файл ArrayList, но всегда отправляю Empty но его компиляция, а не повторные ошибки.Как получить все файлы из каталога, сохранить ArrayList и отправить его с помощью MultipartEntityBuilder - Android

Мой код

private class MyAsyncTask extends AsyncTask<String, Integer, Double> 
    { 
     @Override 
     protected Double doInBackground (String... params) 
     { 
      String datos = value.getText().toString(); 
      // Create a new HttpClient and Post Header 
      HttpClient httpClient = getNewHttpClient(); 

      HttpPost httppost = new HttpPost("http://myURL.com"); 

      try 
      { 
    //......... 

    return null; 
     } 


protected void onPostExecute (Double result) 
     { 
      path = Environment.getExternalStorageDirectory().toString() + "/myDirectory"; 


      File f = new File(path); 
      File file[] = f.listFiles(); 
      Log.d("Files", "Size: " + file.length); 

      for (int i = 0; i < file.length; i++) 
      { 
       Log.d("Files", "FileName:" + file[i].getName()); 
       etmd5.setText(etmd5.getText() + file[i].getName() + "\n"); 
      } 

      runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 

        File fileArray = new File(path); 
        ArrayList<File> files = new ArrayList<File>(Arrays.asList(fileArray.listFiles())); 

        int itemCount = files.size(); 
        tv_files.setText("valor:" + itemCount); 

        MultipartEntityBuilder builder = MultipartEntityBuilder.create(); 

        builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); 

        builder.addTextBody("response", "prueba"); 

        for (int i = 0; i < itemCount; i++) 
        { 
         builder.addPart("images[]", new FileBody(new File(path + "/" + num_img))); 
         num_img++; 
        } 

        HttpEntity entity = builder.build(); 

       } 
      }); 
} 

я что-то плохо, но потом ... Я не знаю, как получить все файлы из каталога отправить ArrayList файлы ... Любые предложения?

+0

Очень плохо, чтобы начать поток в onPostExecute, чтобы выполнить работу. Вместо этого вы должны делать все в doInBackground. Теперь сначала примените свой код и покажите нам, что вы можете отправить один файл. После этого больше файлов. – greenapps

ответ

0

для «объяснения» Я получаю, что вы хотите отправить кучу файлов (что означает file фактический файл, а не java.io.File) ... Итак, вам лучше прочитать файлы, добавить их в Zip bytearray и добавить сущность на ваш пост. mmh ... и, пожалуйста, прочитайте File API, потому что первая строка говорит: An abstract representation of file and directory pathnames.

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