关于文件和文件夹的操作,我们使用的都是一个类:File
常用的构造器 | 说明 |
---|---|
File(String pathname) | 将指定的路径名转换成一个File对象 |
File(String parent,String child) | 根据指定的父路径和文件路径创建对象 |
方法:
File类常用方法 | |
---|---|
boolean createNewFile() | 当指定文件(或文件夹)不存在时创建文件并返回true,否则返回false,路径不存在则抛出异常 |
boolean mkdir() | 当指定文件(或文件夹)不存在时创建文件夹并返回true,否则返回false |
boolean mkdirs() | 创建指定文件夹,所在文件夹目录不存在时,则顺道一块创建 |
boolean delete() | 删除文件 。要删除一个目录,需要先删除这个目录下的所有子文件和子目录 |
boolean renameTo(File dest) | 将当前File对象所指向的路径修改为指定File所指的路径 (修改文件名称) |
boolean exists() | 是否存在 |
boolean isFile() | 是否为一个文件 |
boolean isDirectory() | 是否是一个目录 |
String getPath() | 获取文件路径 |
获取文件的信息
指定一个目录,在目录下创建文件
public void createNewFile(String pathname) {
File file = new File("d:/",pathname);
if( !file.exists() ) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
创建方法:printFileInfo , 输出文件相关的信息
public void printFileInfo(String pathname) {
File file = new File(pathname);
System.out.println("文件名:"+ file.getName());
System.out.println("文件路径:"+ file.getPath());
System.out.println("文件的父路径:"+ file.getParentFile());
System.out.println("文件是否存在:"+ file.exists());
System.out.println("是否为文件:"+ file.isFile());
System.out.println("是否为文件夹:"+ file.isDirectory());
}
使用File制作目录浏览器
这个程序出了 File ,还需要使用到数学上的一个概念「递归」。在代码中就是方法在内部代码中可以调用自身,但是需要有正常的技术方式,否则无法停止的话在可能会OOM的。
方法名 | 说明 |
---|---|
String[] list() | 返回文件夹下面的文件名列表 |
File[] listFiles() | 返回文件夹下面的文件对象列表 |
public class FileExplorer { public static void main(String[] args) { File f = new File("D:\\epub"); printTree(f, 0); } public static void printTree(File f, int level) { for (int j = 0; j < level; j++) { System.out.print("\t"); } System.out.println(f.getAbsolutePath()); if (f.isDirectory()) { level++; File strs[] = f.listFiles(); for (int i = 0; i < strs.length; i++) { File f0 = strs[i]; printTree(f0, level + 1); } } }}