The static method that does the deletion. Invoked by main(), and designed
for use by other programs as well. It first makes sure that the
specified file or directory is deleteable before attempting to delete it.
If there is a problem, it throws an IllegalArgumentException.
// Create a File object to represent the filename
File f = new File(filename);
// Make sure the file or directory exists and isn't write protected
if (!f.exists()) fail("Delete: no such file or directory: " + filename);
if (!f.canWrite()) fail("Delete: write protected: " + filename);
// If it is a directory, make sure it is empty
if (f.isDirectory()) {
String[] files = f.list();
if (files.length > 0) fail("Delete: directory not empty: " + filename);
}
// If we passed all the tests, then attempt to delete it
boolean success = f.delete();
// And throw an exception if it didn't work for some (unknown) reason.
// For example, because of a bug with Java 1.1.1 on Linux,
// directory deletion always fails
if (!success) fail("Delete: deletion failed");