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();
    }
}

Java 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.