今天项目中用到了svn,所以里面有很多svn文件夹和文件,我想去掉svn文件作为单独的项目,但是项目很大,里面有很多svn文件和文件夹,所以我想了一个办法来解决这个问题,代码如下:
package com.yxfei.test;
import java.io.File;
import java.util.List;
public class testFile {
/**
* 删除文件夹里所有为filename的文件夹
* @param file 指定的文件夹名
* @param filename 需要删除的文件名
*/
public void deleteFile(File file,String filename)
{
File[] list = file.listFiles();//得到文件夹中所有文件
//判断文件夹里是否有文件,没有就可以删除当前文件夹
if(list.length==0)
file.delete();
for(int i=0;i<list.length;i++)
{
String name = list[i].getName();//得到文件名
if(name.equals(filename))//判断文件夹名是否为需要删除的文件夹名
{
File f = new File(list[i].getAbsolutePath());//得到文件夹的实际路径
System.out.println(list[i].getAbsolutePath());
f.delete();
if(f.exists())//判断文件是否被删除
deleteAll(f);//删除所有文件
}
else
{
if(!list[i].isFile())//是否为文件夹
deleteFile(list[i],filename);
}
}
}
/**
* 删除file文件夹中所有文件,包括它自己
* @param file
*/
public void deleteAll(File file)
{
File[] list = file.listFiles();
if(list.length==0)//判断是否有子文件或文件夹
file.delete();
for(int i=0;i<list.length;i++)
{
list[i].delete();
if(list[i].exists())//判断文件夹是否还有子文件或文件夹
{
File f = list[i].getAbsoluteFile();
deleteAll(f);//递归删除文件夹或文件
}
}
if(list.length==0)//再次判断是否有子文件或文件夹
file.delete();
}
public static void main(String[] args) {
//删除项目工程中所有为.svn的文件夹
File file = new File("d:\\workspace\\zcgl");
System.out.println(file.isFile());
new testFile().deleteFile(file,".svn");
}
}
很好的解决了svn文件的问题,我都觉得很好,值得拿到博客里分享一下。