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("\t");
System.out.println("* " + file.getName());
} else if (file.isDirectory()) {
for (int i = 0; i < level; i++)
System.out.print("\t");
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