您的位置:首页 > 编程语言 > Java开发

java-File基本操作:FilenameFilte…

2013-09-18 14:23 267 查看
import java.io.*;

class FileDemo

{

public static void main(String[] args)

{

//过滤器

//useMySuffix();

//递归访问文件目录

//File dir = new
File("D:\\Java\\workspace");

//getAllFile(dir, 0);

//删除目录及下边的所有文件:

//从里层开始一层一层倒着删除.

File dir = new
File("D:\\Java\\workspace\\deleteTestDir");

removeFiles(dir);

}

public static void useMySuffix()

{

File f = new File("c:\\");

String suffix =
".log";

String [] arr = f.list(new
SuffixFilter(suffix)); //使用过滤器

//String [] arr =
f.list(); //显示所有的文件名(包含隐藏)

for (String s : arr)

{

System.out.println(s);

}

}

//递归获取所有的文件夹及其下边的所有文件.

public static void getAllFile(File dir, int
level)

{

//System.out.println(getSpace(level)
+ dir.getName());

System.out.println(dir.getPath()
+"\\");

level++;

File [] f =
dir.listFiles();

for (int x = 0; x
< f.length; x++)

{

if
(f[x].isDirectory())

{

getAllFile(f[x],
level);

}

else

//System.out.println(getSpace(level)
+ f[x].getName());

System.out.println(dir.getPath()
+"\\" + f[x].getName());

}

}

public static void removeFiles(File dir)

{

if (dir.exists())

{

File [] f =
dir.listFiles();

for (int x =
0; x < f.length; x++)

{

if
(f[x].isDirectory())

{

removeFiles(f[x]);

}

else

System.out.println(f[x].getAbsolutePath()
+ ":" + f[x].delete());

}

System.out.println(dir.getAbsolutePath()
+ ":" + dir.delete());

}

}

public static String getSpace(int level)

{

StringBuilder s = new
StringBuilder();

for (int x = 0; x
< level; x++)

{

s.append("
");

}

return s.toString();

}

}

// 自定义一个文件后缀名过滤器

class SuffixFilter implements FilenameFilter

{

private String suffix;

SuffixFilter(String suffix)

{

this.suffix = suffix;

}

public boolean accept(File dir, String
name)

{

return
name.endsWith(suffix);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: