0

我正在尝试开发一个可以列出所有应用程序的缓存大小并清理缓存的 android 应用程序,清理缓存工作正常,但是列出所有具有缓存的应用程序是问题所在。所以我正在尝试检查应用程序包是否有缓存文件夹,如果它退出,那么我正在尝试检查缓存文件夹是否为空,但是我正在强制关闭,我也使用了 AsyncTask,但是得到了 Force关闭,我检查了我的代码是否有纯 java 代码,它正在工作,不知道是什么问题,请指导我,提前致谢。

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 没有问题 我用其他东西检查了代码,没问题。请帮我解开这个谜。

4

1 回答 1

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;
}
于 2013-07-04T13:04:36.067 回答