Java I/O How to - Check if a path is a regular file/Directory without following the symbolic links








Question

We would like to know how to check if a path is a regular file/Directory without following the symbolic links.

Answer

import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.Path;
/*from  w  ww  . j a v  a2s  .  c o m*/
public class Main {

  public static void main(String[] args) throws Exception {
    Path path = FileSystems.getDefault().getPath("/home/docs/users.txt");
    System.out.println(Files.isRegularFile(path, LinkOption.NOFOLLOW_LINKS));
  }
}

The code above generates the following result.

The following code shows how to check if a path is Directory without following the symbolic links.

import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.Path;
// w w  w . j av a  2s.  c o  m
public class Main {

  public static void main(String[] args) throws Exception {
    Path path = FileSystems.getDefault().getPath("/home/docs/users.txt");
    System.out.println(Files.isDirectory(path, LinkOption.NOFOLLOW_LINKS));
  }
}

The code above generates the following result.