JAVA中的File类
package testPage; import java.io.File; import java.io.FilenameFilter; import java.io.IOException; /** * File类有一个listFiles(FileNameFilter filter). * 只需要实现一个简单的filter就可以找到满足fileter条件的所有文件。 * 例如我要在E:\data\file_selector_test 目录下面查找以.txt结尾的文件,我可以这么做。见下例。 * @author Administrator * */ public class FileNameSelector implements FilenameFilter { String extension = "."; public FileNameSelector(String fileExtensionNoDot) { extension += fileExtensionNoDot; } @Override public boolean accept(File dir, String name) { return name.endsWith(extension); } public static void main(String[] args) { File directory = new File("E:\\test\\file_selector_test"); //listFiles()列出所有文件 File[] files = directory.listFiles(); System.out.println("\n目录" + directory.getName() + "下的所有文件"); for (File file : files) { System.out.print(" " + file.getName()); } //listFiles(FileNameFilter filter)列出所有.txt文件 File[] txtFiles = directory.listFiles(new FileNameSelector("txt")); System.out.println("\n目录" + directory.getName() + "下的.txt文件"); for (File file : txtFiles) { System.out.print(" " + file.getName()); } //isDirectory()判断是否为文件目录 if(directory.isDirectory()){ System.out.println(directory.getPath()+" is Directory"); } //isFile()判断是否为文件 if(directory.isFile()){ System.out.println(directory.getPath()+" is File"); } //File.separator输出不同的系统中斜杠的方向 //在windows中斜杠的方向是向右斜的\\ //在Linux 中斜杠的方向是向左斜的// System.out.println("File.separator:"+File.separator); File f= new File("e:" + File.separator + "test" + File.separator +"file_selector_test"+File.separator+ "io.txt"); try { //createNewFile()方法:创建指定文件夹下的文件,如果文件夹不存在会报"找不到指定路径"错误,应该首先手动创建该文件夹。返回值为boolean //若没有该文件,创建成功返回true;若又该文件则创建失败返回false System.out.println(f.createNewFile()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //delete()方法:删除一个文件或者整个文件夹,返回值为布尔类型 //如果删除的是文件夹,必须保证是一个空文件夹,否则删除失败 File f0 = new File("E:\\test\\file_selector_test\\io.txt"); boolean boo=f0.delete(); if(boo){ System.out.println("成功删除文件"); }else{ System.out.println("删除失败"); } //调用创建的方法进行删除文件夹以及该文件夹下的所有文件 deleteDirectory(new File("E:\\test\\file_selector_test2")); File f1 = new File("e:" + File.separator + "test"+File.separator+"io.txt"); //getPath()方法:将此抽象路径名转换为一个路径名字符串 System.out.println(f1.getPath()); //getParent()方法:返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 nul System.out.println(f1.getParent()); if(f1.exists()){ f1.delete(); } else{ try{ System.out.println(f1.createNewFile()); }catch(Exception e){} } //list()方法:返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录,列出的仅是名称。 File f2 = new File("E:\\test\\file_selector_test"); String[] str = f2.list(); for(int i=0;i<str.length;i++){ System.out.println(str[i]); } //扫描某个路径下的所有文件 findAllFiles(new File("E:\\")); } //删除文件夹下的所有文件以及该文件夹 public static void deleteDirectory(File file){ File[] fileArray=file.listFiles(); if(fileArray.length>0){ for(int i=0;i<fileArray.length;i++){ if(fileArray[i].isFile()){ if(fileArray[i].delete()){ System.out.println(fileArray[i]+"文件删除成功"); }else{ System.out.println(fileArray[i]+"文件删除失败"); } }else{ deleteDirectory(fileArray[i]); } } } //删除文件夹 if(file.delete()){ System.out.println(file+"文件夹删除成功"); }else{ System.out.println(file+"文件夹删除失败"); } } //扫描指定文件夹下的所有文件,并输出 public static void findAllFiles(File f){ //判断给定的路径是否是目录 if(f.isDirectory()){ File[] file = f.listFiles(); //再依次循环进行判断 try{ for(int i = 0;i < file.length;i++){ //继续把内容传入到findAllFiles方法之中进行验证 findAllFiles(file[i]); } }catch(Exception e){} } else{ System.out.println(f); } } }
本文参考资料:
http://blog.sina.com.cn/s/blog_7a27a9bf0100s887.html
http://www.blogjava.net/tovep/archive/2010/11/07/io.html