原始的で、わざわざここに投稿する程のものでないが、少しでもコードの記述量が削減できればと思い。。。
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import android.content.Context;
/**
* FilesUtil
*/
public final class FilesUtil{
private FilesUtil(){}
private static List<String> mlist;
/**
* Cache clear
* @param context
* @return
*/
public static List<String> cleanCache(Context context){
mlist = new ArrayList<String>();
deleter(context.getCacheDir());
return mlist;
}
private static void deleter(File file){
for(File f:file.listFiles()){
if (f.isDirectory()){
deleter(f);
try{
f.delete();
mlist.add(f.getAbsolutePath());
}catch(Exception e){
}
}else{
try{
f.delete();
mlist.add(f.getAbsolutePath());
}catch(Exception e){
}
}
}
}
private static List<File> flist;
/**
* directory dump
* @param file
* @return
*/
public static List<File> dumpFiles(File file){
flist = new ArrayList<File>();
dump(file);
return flist;
}
private static void dump(File file){
flist.add(file);
if (file.isDirectory()){
File fs = file.listFiles();
for(File f:fs){
if (f.getName().equals("..")) continue;
if (f.getName().equals(".")) continue;
dump(f);
}
}
}
public static List<File> sort(File files){
List<File> rtn = new ArrayList<File>();
Set<File> dirSet = new TreeSet<File>(new FileComparator());
Set<File> fileSet = new TreeSet<File>(new FileComparator());
for(File file:files){
if (file.isDirectory()){
dirSet.add(file);
}else{
fileSet.add(file);
}
}
for(File file:dirSet) rtn.add(file);
for(File file:fileSet) rtn.add(file);
return rtn;
}
}