2013-07-04 1 views
0

Я пытаюсь разработать приложение для Android, которое может отображать весь размер кеша приложения и очищает кеш, очистка кеша работает нормально, но список всех приложений, в которых есть кэш, является проблемой. Поэтому я пытаюсь проверить, есть ли в папке приложения папка с кешем, если она выходит, тогда я пытаюсь проверить, пуста ли кеш-папка или нет, но я нахожусь в силе, я тоже использовал AsyncTask, но получаю Force чтобы закрыть, я проверил свой код на простой Java-код, он работает, не знаю, в чем проблема, пожалуйста, помогите мне, спасибо в Advance.Как проверить, есть ли папка с подпапкой в ​​android?

btn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      new AsyncTask<Void, Void, Void>() 
      { 
       @Override 
       protected void onPreExecute() 
       { 
        pd = ProgressDialog.show(MainActivity.this, "Loading..", 
          "Please Wait", true, false); 
       }//End of onPreExecute method 

       @Override 
       protected Void doInBackground(Void... params) 
       { 
        File file = new File("/data/data/com.android.browser/cache"); 


        if(file.isDirectory()){ 

         if(file.list().length>0){ 

          System.out.println("Directory is not empty!"); 

         }else{ 

          System.out.println("Directory is empty!"); 

         } 

        }else{ 

         System.out.println("This is not a directory"); 

        } 

        return null; 
       }//End of doInBackground method 

       @Override 
       protected void onPostExecute(Void result) 
       { 
        pd.dismiss(); 

       }//End of onPostExecute method 
      }.execute((Void[]) null); 
     } 
    }); 

Нет проблем с AsyncTask Я проверил код с другими материалами, это нормально. Пожалуйста, помогите мне в решении этой загадки.

ответ

0

Попробуйте это,

 ..... 
List<File> files = getListFiles(new File("YOUR ROOT")); 
.... 
private List<File> getListFiles(File parentDir) { 
    ArrayList<File> inFiles = new ArrayList<File>(); 
    File[] files = parentDir.listFiles(); 
    for (File file : files) { 
     if (file.isDirectory()) { 
      inFiles.addAll(getListFiles(file)); 
     } else { 
      if(file.getName().endsWith(".csv")){ 
       inFiles.add(file); 
      } 
     } 
    } 
    return inFiles; 
} 
+0

неа, не работает @No_Rulz Спасибо за ваше время. –

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