Android build文件的删除
2017-11-26 本文已影响430人
zgsHighwin
Android 删除所有build编译文件,翻译磁盘空间
public static void main(String[] args) {
//传入一个目录。
deleteFileWithThread("D:\\");
/**
* 这里开了多个线程,提高效率
**/
private static void deleteFileWithThread(String path) {
File file = new File(path);
if (file.isDirectory()) {
File[] files = file.listFiles();
int length = files.length;
for (File outFile : files) {
if (outFile.isDirectory()) {
File[] filesIn = outFile.listFiles();
if (filesIn != null) {
int lengthIn = filesIn.length;
for (int i = 0; i < lengthIn; i++) {
int a = i;
new Thread() {
@Override
public void run() {
delDir(filesIn[a]);
}
}.start();
}
}
}
}
}
}
}
//采用递归的方式去删除文件夹
public static void delDir(File f) {
// 判断是否是一个目录, 不是的话跳过, 直接删除; 如果是一个目录, 先将其内容清空.
if (f.isDirectory()) {
File[] rootFile = f.listFiles();
for (File file : rootFile) {
if (file.isDirectory()) {
if ("build".equals(file.getName())) { //删除build的文件夹和文件夹中的所有内容
System.out.println("fileName delete\t" + file.getAbsolutePath() + "\t" + file.getName());
deleteFile(file);
file.delete();
} else {
delDir(file);
}
}
}
}
}
private static void deleteFile(File file) {
if (file.exists()) {//判断文件是否存在
if (file.isFile()) {//判断是否是文件
file.delete();//删除文件
System.out.println("fileName delete\t" + file.getAbsolutePath() + "\t" + file.getName());
} else if (file.isDirectory()) {//否则如果它是一个目录
File[] files = file.listFiles();//声明目录下所有的文件 files[];
for (int i = 0; i < files.length; i++) {//遍历目录下所有的文件
deleteFile(files[i]);//把每个文件用这个方法进行迭代
}
file.delete();//删除文件夹
System.out.println("fileName delete\t" + file.getAbsolutePath() + "\t" + file.getName());
}
}
}