访问目录中的项

  • 静态的Files.list方法会返回一个可以读取目录中各个项的Stream对象。目录是被惰性读取的,这使得处理具有大量项的目录可以变得高效
//因为读取目录涉及需要关闭的系统资源,所以应该使用try块
try(Stream entries = Files.list(pathToDirectory)){} catch (IOException e){e.printStackTrace();}
  • list方法不会进入子目录。为了处理目录中的所有子目录,需要使用File.walk方法
try(Stream entries = Files.walk(pathToRoot)){entries.forEach(p -> {Path fileName = p.getFileName();System.out.println(fileName);});} catch (IOException e){e.printStackTrace();}
  • 无论何时,只要遍历的项是目录,那么在进入它之前,会继续访问它的兄弟项。
  • 可以通过调用Files.walk(pathToRoot,depth);限制想要访问的树的深度。
  • 这段代码使用了Files.walk方法将一个目录复制到另一个目录:
try(Stream entries = Files.walk(source)){entries.forEach(p -> {


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部