File类
File 类是jam-io 包下代表与平台无关的文件和目录,也就是说如果希望在程序中操作文件和目录都可以通过File 类来完成,值得指出的是不管是文件、还是目录都是使用File 来操作的, File 能新建、删除和重命名文件和目录, File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
通过File类可以很方便的操纵文件夹和文件,下面是我写的一个递归程序,能够按层次打印出文件夹的内容,并且通过文件过滤器只输出目录和.exe文件。
package File; import java.io.File; import java.io.FileFilter; public class FileTest { public static void main(String[] args) { File file = new File("D:\MyDrivers"); process(file, 0); } public static void process(File file, int level) { if (file.isFile()) { for (int i = 0; i < level; i++) System.out.print(" "); System.out.println("* " + file.getName()); } else if (file.isDirectory()) { for (int i = 0; i < level; i++) System.out.print(" "); System.out.println(file.getName()); for (File singleFile : file.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { // TODO Auto-generated method stub return pathname.getName().endsWith(".exe") | pathname.isDirectory(); } })) { process(singleFile, level + 1); } } } }
下面是程序运行的结果:
MyDrivers backup hotfix software update * broadcom_netxtreme_14603_32.exe * DELL_E177FPb_XP_drv.exe * directx_Jun2010_redist.exe * Intel_multi-device_A06_R296582.exe * intel_sm_9111016.exe * WDM_R265.exe