Nat*_*enn 0 java permissions file-io
我在Java中循环一个目录,试图读取每个文件.该目录包含一些拒绝访问的svn文件.我可以测试文件名并跳过svn文件,但如果我发现其他文件被拒绝访问,这个解决方案将不健壮.我试过这个:
for(File f : dir.listFiles()){
if(f.canRead()){
System.out.println("Trying " + f.getAbsolutePath());
try{
Scanner sc = new Scanner(f);
}
catch(IOException e){
e.printStackTrace();
}
continue;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我到达.svn文件时,它不会跳过; 我得到这个打印输出:
Trying C:\dir\.svn
java.io.FileNotFoundException: dir\.svn (Access is denied)
Run Code Online (Sandbox Code Playgroud)
canRead()
,canWrite()
和canExecute()
所有人都有同样的问题.除了canXXX()
我还可以用来跳过被拒绝的访问文件吗?
.svn
是一个目录.这可能不是你可以阅读的东西Scanner
.
将您的条件更改为:
if(f.canRead() && !f.isDirectory())
Run Code Online (Sandbox Code Playgroud)