IO流_03(File)

File操作

File.separator:与系统有关的默认名称分割符

  • Windows中是 \
  • Unix中是 /

File.pathSeparatorChar:与系统有关的路径分割符

  • Windows中是 ;
  • Unix中是 :
  1. 获取
    • 获取文件绝对路径
      file.getAbsolutePath();
    • 获取文件大小
      file.length();
    • 获取文件最后修改时间
      file.lastModified();
    • 获取所有盘符 得到C:\ D:\ E:
      File.listRoots();
    • 获取磁盘空闲空间
      file.getFreeSpace();
    • 获取盘总空间
      file.getTotalSpace();
    • 获取目录下所有后缀名为.java的文件
    	String[] list = file.list(new FilenameFilter() {
    
    		@Override
    		public boolean accept(File dir, String name) {
    			return name.endsWith(".java");
    		}
    	});
    
  2. 增删
    • 创建文件
      file.createNewFile();
    • 创建文件夹
      file.mkdir();
    • 删除文件
      file.delete();

深度遍历

获取指定目录下的所以文件夹或者文件

private static void listAll(File dir) {
	System.out.println("dir"+dir);
	File[] files = dir.listFiles();
	for (File file : files) {
		if(file.isDirectory())
			listAll(file);
		else {
			System.out.println("file"+file);
		}
	}
}

递归

函数自身直接或者间接的调用到了自身
一个功能在被重复使用,并且每次使用时,参与运算的结果和上一次调用有关,这时可以使用递归。
注意:递归一定要明确条件,否则容易溢出。
具体用法见算法。

删除一个带内容的目录

private static void removeDir(File dir) {
	File[] files = dir.listFiles();
	for (File file : files) {
		if(file.isDirectory()){
			removeDir(file);
		}else {
			System.out.println(file+":"+file.delete());
		}
	}
	System.out.println(dir+":"+dir.delete());
}

猜你喜欢

转载自blog.csdn.net/cw13223/article/details/84932230