展开全部
import java.io.File;
/**
* 递归删除文件类
* @62616964757a686964616fe58685e5aeb931333330346564author Administrator
*
*/
public class DeleteFiles {
private File rootFile;
public DeleteFiles(String rootFileName)
{
super();
this.rootFile = new File(rootFileName);
}
//给定文件名删除文件方法
private void delete(File root)
{
if(root == null)
return;
if(!root.isDirectory())
{
root.delete();
return;
}
else
{
File[] files = root.listFiles();
for(int i=0; i
{
delete(files[i]);
}
root.delete();
}
}
//给定父目录名,树状显示文件列表
private void listFileNames(File f, int level)
{
String prefix = "";
for(int i=0; i
{
prefix += "----";
}
if(f == null)
return;
if(!f.isDirectory())
{
System.out.println(prefix + f.getName());
return;
}
else
{
System.out.println(prefix + f.getName());
File[] files = f.listFiles();
for(int i=0; i
{
listFileNames(files[i], level+1);
}
return;
}
}
public void delete()
{
this.delete(this.rootFile);
}
public void listFileNames()
{
this.listFileNames(rootFile, 0);
}
}
import static org.junit.Assert.*;
import org.junit.Test;
/**
* 测试类
* @author Administrator
*
*/
public class DeleteFilesTest {
@Test
public void testDeleteFiles() {
String fileName = "D:\\t";
DeleteFiles deleteFiles = new DeleteFiles(fileName);
System.out.println("删除前文件列表");
deleteFiles.listFileNames();
deleteFiles.delete();
System.out.println("删除后文件列表");
deleteFiles.listFileNames();
}
}
运行结果如下:
删除前文件列表
t
----t1
--------t11
------------t111
------------新建 文本文档.txt
--------t12
--------t13
--------新建 Microsoft Excel 工作表.xls
----t2
----新建 Microsoft Word 文档.doc
----新建 文本文档.txt
删除后文件列表
t
删除前文件在硬盘中的目录结构: