实例-Java 目录操作

递归创建目录

import java.io.File;

public class Main {
   public static void main(String[] args) {
      String directories = "D:\\a\\b\\c\\d\\e\\f\\g\\h\\i";
      File file = new File(directories);
      boolean result = file.mkdirs();
      System.out.println("Status = " + result);
   }
}

删除目录
import java.io.File;

public class Main {
   public static void main(String[] argv) throws Exception {
      deleteDir(new File("c:\\temp"));
   }
   public static boolean deleteDir(File dir) {
      if (dir.isDirectory()) {
         String[] children = dir.list();
         for (int i = 0; i < children.length; i++) {
            boolean success = deleteDir
            (new File(dir, children[i]));
            if (!success) {
               return false;
            }
         }
      }
      return dir.delete();
      System.out.println("目录已被删除!");
  }
}

判断目录是否为空
import java.io.File;

public class Main {
   public static void main(String[] args) {
      File file = new File("/data");
      if (file.isDirectory()) {
         String[] files = file.list();
         if (files.length > 0) {
            System.out.println("目录 " + file.getPath() +
            " 不为空!");
         }
      }
   }
}

判断文件是否隐藏
import java.io.File;

public class Main {
   public static void main(String[] args) {
      File file = new File("C:/Demo.txt");
      System.out.println(file.isHidden());
   }
}

获取目录大小
import java.io.File;
import org.apache.commons.io.FileUtils;

public class Main {
   public static void main(String[] args) {
      long size = FileUtils.sizeOfDirectory
      (new File("C:/test"));
      System.out.println("Size: " + size + " bytes");
   }
}

在指定目录中查找文件
import java.io.File;

public class Main {
   public static void main(String[] argv) 
   throws Exception {
      File dir = new File("../java");
      String[] children = dir.list();
      if (children == null) {
         System.out.println("该目录不存在");
      }
      else {
         for (int i = 0; i < children.length; i++) {
            String filename = children[i];
            System.out.println(filename);
         }
      }
   }
}

结果:

Car.class
FileUtil.class
FileUtil.java
HelloWorld.class
HelloWorld.java
HelloWorldDebug.class
HelloWorldDebug.java
……

获取文件的上级目录
import java.io.File;

public class Main {
   public static void main(String[] args) {
      File file = new File("C:/File/demo.txt");
      String strParentDirectory = file.getParent();
      System.out.println("文件的上级目录为 : " 
      + strParentDirectory);
   }
}

获取目录最后修改时间
import java.io.File;
import java.util.Date;

public class Main {
   public static void main(String[] args) {
      File file = new File("C://FileIO//demo.txt");
      System.out.println("最后修改时间:" + 
      new Date(file.lastModified()));
   }
}

结果:

最后修改时间:Fri Apr 10 11:09:19 CST 2015

打印目录结构
import java.io.File;
import java.io.IOException;

public class FileUtil {
   public static void main(String[] a)throws IOException{
      showDir(1, new File("d:\\Java"));
   }
   static void showDir(int indent, File file) 
   throws IOException {
      for (int i = 0; i < indent; i++)
         System.out.print('-');
      System.out.println(file.getName());
      if (file.isDirectory()) {
         File[] files = file.listFiles();
         for (int i = 0; i < files.length; i++)
            showDir(indent + 4, files[i]);
      }
   }
}

结果;

-Java
-----codes
---------string.txt
---------array.txt
-----test

遍历指定目录下的所有目录
import java.io.*;

class Main {
   public static void main(String[] args) {
      File dir = new File("F:");
      File[] files = dir.listFiles();
      FileFilter fileFilter = new FileFilter() {
         public boolean accept(File file) {
            return file.isDirectory();
         }
      };
      files = dir.listFiles(fileFilter);
      System.out.println(files.length);
      if (files.length == 0) {
         System.out.println("目录不存在或它不是一个目录");
      }
      else {
         for (int i=0; i< files.length; i++) {
            File filename = files[i];
            System.out.println(filename.toString());
         }
      }
   }
}

结果:

14
F:\C Drive Data Old HDD
F:\Desktop1
F:\harsh
F:\hharsh final
F:\hhhh
F:\mov
F:\msdownld.tmp
F:\New Folder
F:\ravi
F:\ravi3
F:\RECYCLER
F:\System Volume Information
F:\temp
F:\work

输出指定目录下的所有文件
import java.io.*;

class Main {
   public static void main(String[] args) {
      File dir = new File("C:");
      String[] children = dir.list();
      if (children == null) {
         System.out.println( "目录不存在或它不是一个目录");
      }
    else {
         for (int i=0; i< children.length; i++) {
            String filename = children[i];
            System.out.println(filename);
         }
      }
   }
}

结果:

build
build.xml
destnfile
detnfile
filename
manifest.mf
nbproject
outfilename
src
srcfile
test

在指定目录中查找文件
import java.io.*;

class Main {
   public static void main(String[] args) {
      File dir = new File("C:");
      FilenameFilter filter = new FilenameFilter() {
         public boolean accept
         (File dir, String name) {
            return name.startsWith("b");
        }
      };
      String[] children = dir.list(filter);
      if (children == null) {
         System.out.println("目录不存在或它不是一个目录");
      } 
      else {
         for (int i=0; i < children.length; i++) {
            String filename = children[i];
            System.out.println(filename);
         }
      } 
   }
}

结果:

build
build.xml

查看系统根目录
import java.io.*;

class Main{
   public static void main(String[] args){
      File[] roots = File.listRoots();
      System.out.println("系统所有根目录:");
      for (int i=0; i < roots.length; i++) {
         System.out.println(roots[i].toString());
      }
   }
}

结果:

系统所有根目录:
C:\
D:\
E:\
F:\
G:\
H:\

查看当前工作目录
class Main {
   public static void main(String[] args) {
      String curDir = System.getProperty("user.dir");
      System.out.println("你当前的工作目录为 :" + curDir);
   }
}

结果:

你当前的工作目录为 :/www/java

遍历目录
import java.io.File;

public class Main {
   public static void main(String[] argv)
   throws Exception {
      System.out.println("遍历目录");
      File dir = new File("/www/java"); //要遍历的目录
      visitAllDirsAndFiles(dir);
   }
   public static void visitAllDirsAndFiles(File dir) {
      System.out.println(dir);
      if (dir.isDirectory()) {
         String[] children = dir.list();
         for (int i = 0; i < children.length; i++) {
            visitAllDirsAndFiles
            (new File(dir, children[i]));
         }
      }
   }
}

结果:

遍历目录
/www/java
/www/java/Car.class
/www/java/FileUtil.class
/www/java/FileUtil.java
/www/java/HelloWorld.class
/www/java/HelloWorld.java
/www/java/HelloWorldDebug.class
/www/java/HelloWorldDebug.java
/www/java/Main$1.class
/www/java/Main.class
/www/java/Main.java
/www/java/MainClass.class
/www/java/MainClass.java
/www/java/MyClass.class
/www/java/outfilename
/www/java/test.log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值