java.io.FileNotFoundException:.svn(访问被拒绝)

时间:2011-07-19 18:56:48

标签: java file-io permissions

我在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;
}
}

然而,当我到达.svn文件时,它不会跳过;我得到这个打印输出:

Trying C:\dir\.svn
java.io.FileNotFoundException: dir\.svn (Access is denied)

canRead()canWrite()canExecute()都有同样的问题。 除了canXXX()之外还有什么可以用来跳过被拒绝的访问文件吗?

2 个答案:

答案 0 :(得分:6)

.svn是一个目录。这可能不是您可以使用Scanner阅读的内容。

将您的状况改为:

if(f.canRead() && !f.isDirectory())

答案 1 :(得分:3)

您可以抓住FileNotFoundException并转到下一个文件。