Java File类
该类主要用于文件和目录的创建、文件的查找和文件的删除,File对象代表磁盘中实际存在的文件和目录。
构造方法:
给定父file和子路径来创建对象
File(File parent, String child);
给定路径来创建对象
File(String pathname);
给定父路径和子路径来创建对象
File(String parent, String child);
给定url创建对象
File(URI url);
方法
public String getName() | 返回由此抽象路径名表示的文件或目录的名称。 |
public String getParent() | 返回此抽象路径名的父路径名的路径名字符串,如果此路径名没有指定父目录,则返回 null。 |
public File getParentFile() | 返回此抽象路径名的父路径名的抽象路径名,如果此路径名没有指定父目录,则返回 null。 |
public String getPath() | 将此抽象路径名转换为一个路径名字符串。 |
public boolean isAbsolute() | 测试此抽象路径名是否为绝对路径名。 |
public String getAbsolutePath() | 返回抽象路径名的绝对路径名字符串。 |
public boolean canRead() | 测试应用程序是否可以读取此抽象路径名表示的文件。 |
public boolean canWrite() | 测试应用程序是否可以修改此抽象路径名表示的文件。 |
public boolean exists() | 测试此抽象路径名表示的文件或目录是否存在。 |
public boolean isDirectory() | 测试此抽象路径名表示的文件是否是一个目录。 |
public boolean isFile() | 测试此抽象路径名表示的文件是否是一个标准文件。 |
public long lastModified() | 返回此抽象路径名表示的文件最后一次被修改的时间。 |
public long length() | 返回由此抽象路径名表示的文件的长度。 |
public boolean createNewFile() throws IOException | 当且仅当不存在具有此抽象路径名指定的名称的文件时,原子地创建由此抽象路径名指定的一个新的空文件。 |
public boolean delete() | 删除此抽象路径名表示的文件或目录。 |
public void deleteOnExit() | 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。 |
public String[] list() | 返回由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组。 |
public String[] list(FilenameFilter filter) | 返回由包含在目录中的文件和目录的名称所组成的字符串数组,这一目录是通过满足指定过滤器的抽象路径名来表示的。 |
public File[] listFiles() | 返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件。 |
public File[] listFiles(FileFilter filter) | 返回表示此抽象路径名所表示目录中的文件和目录的抽象路径名数组,这些路径名满足特定过滤器。 |
public boolean mkdir() | 创建此抽象路径名指定的目录。 |
public boolean mkdirs() | 创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。 |
public boolean renameTo(File dest) | 重新命名此抽象路径名表示的文件。 |
public boolean setLastModified(long time) | 设置由此抽象路径名所指定的文件或目录的最后一次修改时间。 |
public boolean setReadOnly() | 标记此抽象路径名指定的文件或目录,以便只可对其进行读操作。 |
public static File createTempFile(String prefix, String suffix, File directory) throws IOException | 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。 |
public static File createTempFile(String prefix, String suffix) throws IOException | 在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。 |
public int compareTo(File pathname) | 按字母顺序比较两个抽象路径名。 |
public int compareTo(Object o) | 按字母顺序比较抽象路径名与给定对象。 |
public boolean equals(Object obj) | 测试此抽象路径名与给定对象是否相等。 |
public String toString() | 返回此抽象路径名的路径名字符串。 |
事例:
//遍历目录下所有文件包含子目录中文件 public void list_folder_contents(File file){ File[] files = file.listFiles(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("名称\t修改日期\t类型\t大小"); for (File f : files) { if(f.isDirectory()){ System.out.println(f.getName()+"\t"+sdf.format(new Date(f.lastModified()))+"\t文件夹"); }else if(f.isFile()){ System.out.println(f.getName()+"\t"+sdf.format(new Date(f.lastModified()))+"\t文件\t"+f.length()); } } }
//创建新文件夹 public void create(File file) throws IOException{ System.out.println(file.exists()); if(!file.exists()){ if(file.mkdirs()){ System.out.println(file.getName()+"创建成功"); }else{ System.out.println(file.getName()+"创建失败"); } }else{ System.out.println(file.getName()+"已存在"); } }
//删除指定目录下下所有,包含该目录 public static void delete(File file){ File[] fileArray=file.listFiles(); for(int i=0;i<fileArray.length;i++){ if(fileArray[i].isFile()){ if(fileArray[i].delete()){ System.out.println(fileArray[i].getName()+"文件删除成功"); }else{ System.out.println(fileArray[i].getName()+"文件删除失败"); } }else if(fileArray[i].isDirectory()){ delete(fileArray[i]); if(fileArray[i].delete()){ System.out.println(fileArray[i].getName()+"目录删除成功"); }else{ System.out.println(fileArray[i].getName()+"目录删除失败"); } } } if(file.delete()){ System.out.println(file.getName()+"目录删除成功"); }else{ System.out.println(file.getName()+"目录删除失败"); } }