Java 1.6-确定符号链接

在DirectoryWalker类中,我想确定File实例是否实际上是指向目录的符号链接(假设Walker在UNIX系统上行走)。给定,我已经知道实例是一个目录,以下是否是确定符号链接的可靠条件?

File file;

// ...

if (file.getAbsolutePath().equals(file.getCanonicalPath())) {

// real directory ---> do normal stuff

}

else {

// possible symbolic link ---> do link stuff

}

回答:

这是Apache代码(根据其许可证使用),为了紧凑而进行了修改。

public static boolean isSymlink(File file) throws IOException {

if (file == null)

throw new NullPointerException("File must not be null");

File canon;

if (file.getParent() == null) {

canon = file;

} else {

File canonDir = file.getParentFile().getCanonicalFile();

canon = new File(canonDir, file.getName());

}

return !canon.getCanonicalFile().equals(canon.getAbsoluteFile());

}

以上是 Java 1.6-确定符号链接 的全部内容, 来源链接: utcz.com/qa/407952.html

回到顶部