如何检查第一个命令行参数是否是JAVA中当前目录中的目录?

时间:2014-10-21 16:26:49

标签: java

我目前能够使用下面的代码列出当前目录的内容。但是,我想添加一个命令行参数来列出当前目录中目录的内容。我在检查args [0]是否是当前目录中的目录时遇到问题。这是我目前的代码。顶部工作,直到我到达评论的NOT WORKING部分。如何检查arg [0]是否是当前目录中的目录,如果是,则打印出其内容,如第一部分。我担心文件f =新文件(args [0])也是错误的。谢谢你的帮助。

public class DirSort {



// START MAIN
public static void main(String[] args) {

    // if no command line arguments, list directory
    if (args.length==0){
    File f = new File(".");
    File[] files = f.listFiles();
    DateFormat df = new SimpleDateFormat("MMM dd HH:mm:ss");

        // for each File in array, print out
        for (int i =0; i<files.length; i++){
            System.out.printf("%8d %s %s%n", files[i].length(), df.format(files[i].lastModified()), files[i].getName());
            System.exit(0);
        }

    //NOT WORKING
    if(args.length==1){
        if (!args[0].isDirectory)
        System.exit(1);

    File f = new File(args[0]);
    File[] files = f.listFiles();
    DateFormat df = new SimpleDateFormat("MMM dd HH:mm:ss");

        // for each File in array, print out
        for (int i =0; i<files.length; i++){
            System.out.printf("%8d %s %s%n", files[i].length(), df.format(files[i].lastModified()), files[i].getName());
            System.exit(0);
        }

    }

}    

1 个答案:

答案 0 :(得分:1)

isDirectory课程中没有方法String。您需要创建一个File对象,然后检查它是否是目录:

public static void main(String[] args) {

// if no command line arguments, list directory
if (args.length==0){
File f = new File(".");
File[] files = f.listFiles();
DateFormat df = new SimpleDateFormat("MMM dd HH:mm:ss");

    // for each File in array, print out
    for (int i =0; i<files.length; i++){
        System.out.printf("%8d %s %s%n", files[i].length(), df.format(files[i].lastModified()), files[i].getName());
        System.exit(0);
    }

//NOT WORKING
if(args.length==1){


File f = new File(args[0]);
if (!f.isDirectory())
    System.exit(1);
File[] files = f.listFiles();
DateFormat df = new SimpleDateFormat("MMM dd HH:mm:ss");

    // for each File in array, print out
    for (int i =0; i<files.length; i++){
        System.out.printf("%8d %s %s%n", files[i].length(), df.format(files[i].lastModified()), files[i].getName());
        System.exit(0);
    }

}

}