If p1.equals(p2) returns true, this method returns true without verifying the existence of the paths in the file system.
Otherwise, it checks with the file system, if both paths locate the same file.
The isSameFile()throws an IOException when an I/O error occurs.
The following code demonstrates how the isSameFile() method works.
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) { // Assume that C:\myData\Main.java file exists Path p1 = Paths.get("C:\\myData\\Main.java"); Path p2 = Paths.get("C:\\myData\\..\\myData\\Main.java"); // Assume that C:\abc.txt file does not exist Path p3 = Paths.get("C:\\abc.txt"); Path p4 = Paths.get("C:\\abc.txt"); try {//w w w . ja va2 s . c o m boolean isSame = Files.isSameFile(p1, p2); System.out.println("p1 and p2 are the same: " + isSame); isSame = Files.isSameFile(p3, p4); System.out.println("p3 and p4 are the same: " + isSame); } catch (IOException e) { e.printStackTrace(); } } }