Java - File getCanonicalFile() Method



Description

The Java File getCanonicalPath() method returns the canonical pathname string of this abstract pathname. This method removes redundant names such as "." and ".." from the pathname

Declaration

Following is the declaration for java.io.File.getCanonicalPath() method −

public String getCanonicalPath()

Parameters

NA

Return Value

The method returns the canonical pathname string.

Exception

  • IOException − If an I/O error occurs.

  • SecurityException − If a system property value can not be accessed.

Example 1

The following example shows the usage of Java File getCanonicalPath() method. We've created two File references. Then we're creating a File Object using test.txt which is not present in the current directory. Then we've created the file using createNewFile() method. Now using getCanonicalFile() method, we're getting the file and printing the path using getCanonicalPath() method and then we're checking if file exists using exists() method.

package com.tutorialspoint;
import java.io.File;
public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
      File f1 = null;
      String path = "";
      boolean bool = false;
      
      try {
         // create new files
         f = new File("../test.txt");
         
         // create new file in the system
         f.createNewFile();
         
         // create new file object from the absolute path
         f1 = f.getCanonicalFile();
         
         // returns true if the file exists
         bool = f1.exists();
         
         // returns absolute pathname
         path = f1.getCanonicalPath();
         
         // if file exists
         if(bool) {
         
            // prints the file
            System.out.print(path+" Exists? "+ bool);
         }
         
      } catch(Exception e) {
         // if any error occurs
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result −

F:\Workspace\test.txt Exists? true

Example 2

The following example shows the usage of Java File getCanonicalFile() method. We've created a File reference. Then we're creating a File Object using F:/test.txt which is present in the provided directory. Now using getCanonicalFile() method, we're getting the file and printing its path.

package com.tutorialspoint;
import java.io.File;
public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
      
      try {
         // create new files
         f = new File("F://Test/../test.txt");         
    
         // get the file
         File f1 = f.getCanonicalFile();
         
         // prints the file path
         System.out.println("File: "+f1.getCanonicalPath());
         
      } catch(Exception e) {
         // if any error occurs
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result −

File: F:\test.txt

Example 3

The following example shows the usage of Java File getCanonicalFile() method. We've created a File reference. Then we're creating a File Object using F:/test directory which is present in the provided location. Now using getCanonicalFile() method, we're getting the directory and printing its path.

package com.tutorialspoint;
import java.io.File;
public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
      
      try {
         // create new files
         f = new File("F:/Test/../test");         
    
         // get the file
         File f1 = f.getCanonicalFile();
         
         // prints the file path
         System.out.println("Directory: "+f1.getCanonicalPath());
         
      } catch(Exception e) {
         // if any error occurs
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result −

Directory: F:\Test
java_file_class.htm
Advertisements