Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.io.FileNotFoundException:.svn(访问被拒绝)_Java_File Io_Permissions - Fatal编程技术网

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

java.io.FileNotFoundException:.svn(访问被拒绝),java,file-io,permissions,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);

我在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之外,还有什么可以用来跳过被拒绝访问的文件吗?

.svn是一个目录。这可能不是你用扫描仪能读到的东西

将您的条件更改为:

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

您可以捕获FileNotFoundException并移动到下一个文件。

完全正确。无论如何,您必须这样做,为什么还要编写额外的代码?我只需要过滤掉目录并使用try/catch。