Java I/O How to - Check if two path represent the same file








Question

We would like to know how to check if two path represent the same file.

Answer

/*from w  w  w .  java 2 s .  c o m*/

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Main {
  public static void main(String[] args) {
    Path path1 = Paths.get("/home/docs/users.txt");
    Path path2 = Paths.get("/home/docs/users.txt");
    Path path3 = Paths.get("/home/music/A.mp3");

    testSameFile(path1, path2);
    testSameFile(path1, path3);
  }
  private static void testSameFile(Path path1, Path path2) {
    try {
      if (Files.isSameFile(path1, path2)) {
        System.out.println("same file");
      } else {
        System.out.println("NOT the same file");
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

The code above generates the following result.