如何在android中检查文件夹是否有子文件夹?
我正在尝试开发一个android应用程序,可以列出所有应用程序的缓存大小并清理缓存,清理缓存工作正常,但列出所有有缓存的应用程序是个问题。所以我试着检查应用程序包是否有缓存文件夹,如果它存在,那么我试着检查缓存文件夹是否为空,但我正在强制关闭,我也使用了AsyncTask,但强制关闭,我检查了我的代码,以获取普通java代码,它正在工作,不知道是什么问题,请指导我,提前感谢如何在android中检查文件夹是否有子文件夹?,android,caching,Android,Caching,我正在尝试开发一个android应用程序,可以列出所有应用程序的缓存大小并清理缓存,清理缓存工作正常,但列出所有有缓存的应用程序是个问题。所以我试着检查应用程序包是否有缓存文件夹,如果它存在,那么我试着检查缓存文件夹是否为空,但我正在强制关闭,我也使用了AsyncTask,但强制关闭,我检查了我的代码,以获取普通java代码,它正在工作,不知道是什么问题,请指导我,提前感谢 btn.setOnClickListener(new View.OnClickListener() {
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);
}
});
btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
新建异步任务()
{
@凌驾
受保护的void onPreExecute()
{
pd=ProgressDialog.show(MainActivity.this,“加载…”,
“请稍候”,对,错);
}//onPreExecute方法的结束
@凌驾
受保护的Void doInBackground(Void…参数)
{
File File=新文件(“/data/data/com.android.browser/cache”);
if(file.isDirectory()){
如果(file.list().length>0){
System.out.println(“目录不是空的!”);
}否则{
System.out.println(“目录为空!”);
}
}否则{
System.out.println(“这不是目录”);
}
返回null;
}//底底法
@凌驾
受保护的void onPostExecute(void结果)
{
pd.解散();
}//onPostExecute方法的结束
}.执行((作废[])无效);
}
});
AsyncTask没有问题,我用其他东西检查了代码,没问题。请帮我解开这个谜。试试这个
.....
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;
}
。。。。。
列表文件=getListFiles(新文件(“您的根”);
....
私有列表getListFiles(文件parentDir){
ArrayList inFiles=新的ArrayList();
File[]files=parentDir.listFiles();
用于(文件:文件){
if(file.isDirectory()){
addAll(getListFiles(file));
}否则{
if(file.getName().endsWith(“.csv”)){
inFiles.add(文件);
}
}
}
返回填充;
}