遍历系统文件 2020-03-05 15:57 ```java package hx.insist.test; import org.apache.commons.lang3.StringUtils; import org.springframework.util.CollectionUtils; import java.io.File; import java.util.*; /** * @ClassName demo1 * @Description * @Author 123 * @Date 2019/8/20 9:57 * @Version 1.0 * 实现Arrays.toString **/ public class demo1 { public static void main(String[] args) { String dirpath = "F:\\images\\map";//目录下只有文件 String dir = "E:\\FastDFS\\linux系统安装FastDFS";//目录下有文件,也有目录 /** * $Recycle.Bin * $RECYCLE.BIN * F:\$RECYCLE.BIN * 文件?false * 文件夹?true * Hidden?true * Absolute?true */ List<String> list = new ArrayList(); Map<String,List<String>> map = new HashMap<>(); /*System.out.println(dir); System.out.println("文件?"+file1.isFile()); System.out.println("文件夹?"+file1.isDirectory()); System.out.println("Hidden?"+file1.isHidden()); System.out.println("Absolute?"+file1.isAbsolute());*/ //遍历只有文件的目录 blDir(dirpath,list); for (String s : list) { System.out.println(s); } //遍历既有文件也有目录的目录 blDirAll(new File(dir),map); Set<Map.Entry<String, List<String>>> entries = map.entrySet(); for (Map.Entry<String, List<String>> entry : entries) { System.out.println("---------------------------------------------------------------"); System.out.println("Key:"); System.out.println(entry.getKey()); System.out.println("Value:"+entry.getValue().size()); for (String s : entry.getValue()) { System.out.println(s); } } } //给一个目录(该目录下不允许再有目录),遍历下面的所有文件 public static List blDir(String dir,List list){ File file = new File(dir); if(file.exists()) if(file.isDirectory()){ File[] files = file.listFiles(); for (File file1 : files) { String name = file1.getName(); list.add(name); } }else{ System.out.println("file.isFile()"); } return list; } /** * 给一个文件File(也许是文件,也许是目录),遍历其下所有子文件 * @param fileDir * @param map * @return * * dir:F:\images * * map<String,List>: * F:\images=1.jpg * 2.jpg * F:\images\map=0.png * 1.png * 2.png */ public static void blDirAll(File fileDir, Map<String,List<String>> map){ if (fileDir.exists()){ if(fileDir.isDirectory()){ if(fileDir.getName().indexOf(".")>0){ //$RECYCLE.BIN.isDirectory()返回true,忽略此系统目录 //.git.indexOf()==0 不忽略普通目录 }else{ File[] files = fileDir.listFiles(); for (File file : files) { blDirAll(file,map); } } }else if(fileDir.isFile()){ //fileDir : F:\images\map\1.png 此时它是一个文件 String name = fileDir.getParent();//父目录名称:F:\images\map if(map.containsKey(name)){//如果存在此key map.get(name).add(fileDir.getName()); }else{//不存在此key List<String> list = new ArrayList(); list.add(fileDir.getName()); map.put(name,list); } }else{ //不明不白的文件不处理。 } } } //fileDir.listFiles(); 得到的是相对路径 } ``` --END--
发表评论