Java 目录操作方法
java.io.File 类还可以用来操作目录,比如新建目录 、列出目录 、删除目录
创建目录
File类中有两个方法可以用来创建文件夹
方法 | 说明 |
---|---|
mkdir() | 创建一个文件夹,成功则返回 true,失败则返回 false。失败表明 File 对象指定的路径已经存在,或者由于整个路径还不存在,该文件夹不能被创建 |
mkdirs() | 创建一个文件夹和它的所有父文件夹 |
下面的代码用于创建 "/tmp/user/java/bin" 文件夹
import java.io.File; public class CreateDir { public static void main(String args[]) { String dirname = "/tmp/user/java/bin"; File d = new File(dirname); // 现在创建目录 d.mkdirs(); } }
Java 会自动转换目录路径分隔符,所以不管在 Windows 下还是 Linux 下,都可以使用 (/)
读取目录
一个目录其实就是一个 File 对象,包含其它文件和文件夹
如果创建一个 File 对象并且它是一个目录,那么调用 isDirectory() 方法会返回 true
可以通过调用该对象上的 list() 方法,来提取它包含的文件和文件夹的列表
下面的代码演示了如何使用 list() 方法来检查一个文件夹中包含的内容
import java.io.File; public class DirList { public static void main(String args[]) { String dirname = "/tmp"; File f1 = new File(dirname); if (f1.isDirectory()) { System.out.println( "目录 " + dirname); String s[] = f1.list(); for (int i=0; i < s.length; i++) { File f = new File(dirname + "/" + s[i]); if (f.isDirectory()) { System.out.println(s[i] + " 是一个目录"); } else { System.out.println(s[i] + " 是一个文件"); } } } else { System.out.println(dirname + " 不是一个目录"); } } }
编译运行以上 Java 代码,输出结果如下
目录 /tmp bin 是一个目录 lib 是一个目录 demo 是一个目录 test.txt 是一个文件 README 是一个文件 index.html 是一个文件 include 是一个目录
删除目录或文件
删除文件可以使用 java.io.File.delete() 方法
假设当前目录结构如下
/tmp/java/ |-- 1.log |-- test
下面的代码会删除目录 /tmp/java/,即便目录不为空
import java.io.File; public class DeleteFileDemo { public static void main(String args[]) { // 这里修改为自己的测试目录 File folder = new File("/tmp/java/"); deleteFolder(folder); } //删除文件及目录 public static void deleteFolder(File folder) { File[] files = folder.listFiles(); if(files!=null) { for(File f: files) { if(f.isDirectory()) { deleteFolder(f); } else { f.delete(); } } } folder.delete(); } }