问题描述
- android遍历根目录遇到link文件造成死循环
- android递归遍历根目录(/)时 子目录下遇到link文件(->)指向上层目录 link文件被识别为上层目录 递归造成死循环
public static void scanDirectory() { scanFile(new File(""/"")); } public static void scanFile(File file) { if (null == file) return; if (file.isDirectory()) { File[] files = file.listFiles(); if (null == files) return; else for (File f : files) scanFile(f); } else { Log.i(""FILE"" file.getPath()); } }
解决方案
用getCanonicalPath()还有getAbsolutePath()的返回值来比对
普通的文件 两个函数的返回是一样的
如果是link文件 前一个函数返回的是实际文件的路径 后一个函数返回的是链接文件的路径(所指向的路径)
时间: 2024-08-01 13:41:35