我有一个指向他的父目录的密码,是奇怪的,但是我试着去理解,我已经做了。但另一个问题出来了。
我有以下代码。
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public final class FileLoopSystemException{
private final Path target = Paths.get("C:\\Users\\Documents\\SymbolicLinks\\Folder\\SubDirectorio\\SymbolicApuntandoADirectorioLink.txt");
public static void main(String[] args)throws Exception{
final FileLoopSystemException clazz = new FileLoopSystemException();
clazz.walk();
}
private void walk()throws Exception{
System.out.println("Exist: "+Files.exists(target));//false
System.out.println("Directory: "+Files.isDirectory(target));//true
System.out.println("Symbolic: "+Files.isSymbolicLink(target));//true
System.out.println("RegularFile: "+Files.isRegularFile(target));//false
final long count = Files.walk(target,java.nio.file.FileVisitOption.FOLLOW_LINKS)
.peek(a->System.out.println(Files.isSymbolicLink(a)+" "+a))
.count();
System.out.println("count = " + count);
}
}
但投掷
Exception in thread "main" java.nio.file.NotDirectoryException: C:\Users\Documents\SymbolicLinks\Folder\SubDirectorio\SymbolicApuntandoADirectorioLink.txt
我正在使用follow link选项,但我不知道目标是follow,这是一个目录,为什么files.walk说如果我不通过follow_link选项,那么它就不是一个目录,打印文件本身,这是可以的,因为它不是follow。
在resume why files.walk中,无法遍历我的目标目录,该目录是follow??
API说
Checked exception thrown when a file system operation, intended for a directory, fails because the file is not a directory.
但是它是一个目录,只是因为它被当作一个普通文件来处理,它会打印文件名,而不是链接,目录被设置,但是Java不被识别为一个普通目录。
我的文件系统是这样的。
C:\Users\Documents\SymbolicLinks\Folder\SubDirectorio
....SymbolicApuntandoADirectorioLink.txt -->SymbolicLink pointing to parent directory SubDirectorio