The File object is a representation of a file or a directory on disk. The File object can be used to extract properties of a file apart from other functions of renaming, deletion etc..
Code
The following code is pretty self-explanatory. The program asks for a file name and displays the properties of the file/directory that is entered. It explains how a File object can be used to extract details of a File or Directory.
/*
* This example lists out the properties of a File and demonstrates
* how a File Object can be used.
*
* Comments about individual functions are interspersed.
* @author Anand Hariharan (anand@javareference.com)
*
*/
import java.io.*;
public class FileExample {
public static void main(String[] args) {
// Get the File Name from the user
System.out.print("Enter the full path of the file you want to list properties for..");
String fileName = null;
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
fileName = br.readLine();
} catch (IOException ioe) {
System.out.println("Couldnt read filename, some problem");
return;
}
// Create a File Object with the entered name.
// NOTE : Creating a File object in Java will *NOT* create
// the corresponding file on disk. The File object can be used
// extract properties about an existing file. If the file does
// not exist on disk, the File Object will be created nevertheless.
File file = new File(fileName);
// Check if this file exists
if (!file.exists()) {
// File does not exist, give error and exit
System.out.println("The File \"" + fileName + "\" " +
"does not exist. Please enter a valid FileName.");
return;
}
System.out.println("**Properties of File " + file.getAbsolutePath() + "**");
//First check if the File Object is a Directory.
//NOTE : The File object can be used to represent directories also.
if (file.isDirectory())
System.out.println(file.getPath() + " is a directory.");
else {
// Size of the file in bytes...
System.out.println("Size of file in bytes... " + file.length());
}
// Check permissions to read and write.
if (file.canWrite()) {
if (file.canRead())
System.out.println(file.getPath() + " is read-write.");
else
System.out.println(file.getPath() +
" cannot be read from, but write permissions are allowed.");
} else {
if (file.canRead())
System.out.println(file.getPath() + " is read-only");
else
System.out.println("You cannot read or write to " +
file.getPath());
}
// Check the parent of this file..
String parent = file.getParent();
if (parent == null) {
System.out.println(file.getPath() + " is a root directory.");
} else {
System.out.println("Parent of " + file.getPath() + " is " + parent + ".");
}
// Check if file is hidden.
if (file.isHidden()) {
System.out.println(file.getPath() + " is Hidden.");
}
// Check when it was last modified..
System.out.println(file.getPath() + " was last modified on " +
new java.util.Date(file.lastModified()));
}
}