# How to check if directory is a symbolic link in Java

By Atta Ur Rehman Shah (https://attacomsian.com/about). Published Dec 14, 2019, updated Oct 14, 2022. Topics: Java.
Canonical URL: https://attacomsian.com/blog/java-check-if-directory-is-symbolic-link

> A quick tutorial to learn how to check if a directory is a symbolic link in Java.

In Java 7 or higher, you can use the `Files.isSymbolicLink()` static method to check whether a directory is a symbolic link:

```java
// directory path
Path path = Paths.get("dir");

// check if the directory is a symlink
if (Files.isSymbolicLink(path)) {
    System.out.println("Directory is a symlink!");
} else {
    System.out.println("Directory is not a symlink!");
}
```

If you are using legacy I/O API (classes in the `java.io.*` package), you need to do a little extra work:

```java
try {
    // directory path
    File file = new File("/home/attacomsian/atta-java");

    // check if directory is empty
    if (file.isDirectory()) {
        File canon = file.getParent() == null ? file :
                new File(file.getParentFile().getCanonicalFile(), file.getName());
        if (!canon.getCanonicalFile().equals(canon.getAbsoluteFile())) {
            System.out.println("Dirctory is a symlink!");
        } else {
            System.out.println("Dirctory is not not symlink!");
        }
    } else {
        System.out.println("Not a directory!");
    }
} catch (IOException ex) {
    ex.printStackTrace();
}
```

> **Note:** The above code snippet will only work on Unix systems. You should always use `Files.isSymbolicLink()` whenever possible. It works everywhere. 

## Further Reading

You may be interested in other Java I/O articles:

* [Reading and Writing Files in Java](https://attacomsian.com/blog/java-read-write-files)
* [How to Read and Write Text Files in Java](https://attacomsian.com/blog/java-read-write-text-files)
* [How to Read and Write Binary Files in Java](https://attacomsian.com/blog/java-read-write-binary-files)
* [Reading and Writing Files using Java NIO API](https://attacomsian.com/blog/java-read-write-files-nio-api)
* [How to read a file line by line in Java](https://attacomsian.com/blog/how-to-read-a-file-line-by-line-in-java)
