解决 Java7 中文件行树中拒绝访问的问题
以下是一些简单的代码,仅用于测试该方法。但是,具有这些权限()的文件夹会引发异常,即使我认为我用if语句()保护了它。Files.walkFileTree()
/etc/ssl/private
rwx--x---
if (permissions.equals("rwx--x---")
我做错了什么?提前致谢。
public static void main (String []args) throws IOException, InterruptedException
{
Files.walkFileTree(Paths.get("/"), new WalkingTheThing2());
}
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException
{
PosixFileAttributeView posixView = Files.getFileAttributeView(dir, PosixFileAttributeView.class);
PosixFileAttributes posixAttr = posixView.readAttributes();
String permissions =PosixFilePermissions.toString(posixAttr.permissions());
if (permissions.equals("rwx--x---"))
{
return FileVisitResult.SKIP_SUBTREE;
}
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
throws IOException {
try{
System.out.println(file.getFileName()+" " +Files.size(file));
return FileVisitResult.CONTINUE;
}
catch(IOException io){return FileVisitResult.CONTINUE;}
}
我得到的例外是:java.nio.file.AccessDeniedException: /etc/ssl/private
编辑:通过覆盖来解决:visitFileFailed
public FileVisitResult visitFileFailed(Path file, IOException io)
{
return FileVisitResult.SKIP_SUBTREE;
}