83 lines
2.2 KiB
Java
83 lines
2.2 KiB
Java
//: io/MakeDirectories.java
|
|
// ©2015 MindView LLC: see Copyright.txt
|
|
// Demonstrates using the File class to
|
|
// create directories and manipulate files.
|
|
// {Args: MakeDirectoriesTest}
|
|
import java.io.*;
|
|
|
|
public class MakeDirectories {
|
|
private static void usage() {
|
|
System.err.println(
|
|
"Usage:MakeDirectories path1 ...\n" +
|
|
"Creates each path\n" +
|
|
"Usage:MakeDirectories -d path1 ...\n" +
|
|
"Deletes each path\n" +
|
|
"Usage:MakeDirectories -r path1 path2\n" +
|
|
"Renames from path1 to path2");
|
|
System.exit(1);
|
|
}
|
|
private static void fileData(File f) {
|
|
System.out.println(
|
|
"Absolute path: " + f.getAbsolutePath() +
|
|
"\n Can read: " + f.canRead() +
|
|
"\n Can write: " + f.canWrite() +
|
|
"\n getName: " + f.getName() +
|
|
"\n getParent: " + f.getParent() +
|
|
"\n getPath: " + f.getPath() +
|
|
"\n length: " + f.length() +
|
|
"\n lastModified: " + f.lastModified());
|
|
if(f.isFile())
|
|
System.out.println("It's a file");
|
|
else if(f.isDirectory())
|
|
System.out.println("It's a directory");
|
|
}
|
|
public static void main(String[] args) {
|
|
if(args.length < 1) usage();
|
|
if(args[0].equals("-r")) {
|
|
if(args.length != 3) usage();
|
|
File
|
|
old = new File(args[1]),
|
|
rname = new File(args[2]);
|
|
old.renameTo(rname);
|
|
fileData(old);
|
|
fileData(rname);
|
|
return; // Exit main
|
|
}
|
|
int count = 0;
|
|
boolean del = false;
|
|
if(args[0].equals("-d")) {
|
|
count++;
|
|
del = true;
|
|
}
|
|
count--;
|
|
while(++count < args.length) {
|
|
File f = new File(args[count]);
|
|
if(f.exists()) {
|
|
System.out.println(f + " exists");
|
|
if(del) {
|
|
System.out.println("deleting..." + f);
|
|
f.delete();
|
|
}
|
|
}
|
|
else { // Doesn't exist
|
|
if(!del) {
|
|
f.mkdirs();
|
|
System.out.println("created " + f);
|
|
}
|
|
}
|
|
fileData(f);
|
|
}
|
|
}
|
|
} /* Output: (80% Match)
|
|
created MakeDirectoriesTest
|
|
Absolute path: d:\aaa-TIJ4\code\io\MakeDirectoriesTest
|
|
Can read: true
|
|
Can write: true
|
|
getName: MakeDirectoriesTest
|
|
getParent: null
|
|
getPath: MakeDirectoriesTest
|
|
length: 0
|
|
lastModified: 1101690308831
|
|
It's a directory
|
|
*///:~
|