fileutils.java

来自「java 教程相应的代码 全是自己写的内附注释 很容易看明白的」· Java 代码 · 共 53 行

JAVA
53
字号
package demo.chapter.file;

import java.io.File;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public abstract class FileUtils {
	
	public static final String MAP_FILES_KEY = "files";
	public static final String MAP_DIRS_KEY = "dirs";
	
	public static Map<String, Set<File>> getPathFiles(String path) {
		Map<String, Set<File>> result = 
			new HashMap<String, Set<File>>();
		result.put(MAP_FILES_KEY, new HashSet<File>());
		result.put(MAP_DIRS_KEY, new HashSet<File>());
		File file = new File(path);
		if (file.isDirectory()) {
			for (File f : file.listFiles()) {
				if (f.isFile()) {
					result.get(MAP_FILES_KEY).add(f);
				} else {
					result.get(MAP_DIRS_KEY).add(f);
				}
			}
		}
		return result;
	}

	public static void main(String[] args) {
		System.out.println("请输入目录路径:");
		Scanner scan = new Scanner(System.in);
		String path = scan.nextLine();
		printFileInfo(path);
	}
	
	private static void printFileInfo(String path) {
		Map<String, Set<File>> map = 
			FileUtils.getPathFiles(path);
		Set<File> files = map.get(MAP_FILES_KEY);
		Set<File> dirs = map.get(MAP_DIRS_KEY);
		for (File f : files) {
			System.out.println(f.getAbsolutePath());
		}
		for (File f : dirs) {
			printFileInfo(f.getAbsolutePath());
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?