【发布时间】:2014-10-21 16:26:48
【问题描述】:
我目前可以使用下面的代码列出我当前目录的内容。但是,我想添加一个命令行参数来列出当前目录中目录的内容。我无法检查 args[0] 是否是我当前目录中的目录。这是我当前的代码。顶部有效,直到我到达评论的 NOT WORKING 部分。如何检查 arg[0] 是否是当前目录中的目录,如果是,则像第一部分一样打印出它的内容。我担心 File f = new File(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);
}
}
}
【问题讨论】:
-
您应该阅读来自编译器的错误消息。它告诉您错误是什么以及在哪里。
args[0]是一个字符串。字符串没有名为isDirectory的字段。 -
是的,这就是问题所在。如何检查 args[0] 是否为目录?如果是,创建一个新的 File 对象来列出它的内容,就像我对当前目录所做的那样。
-
File 类型的对象允许检查文件是否为目录。您可以从字符串创建文件类型的对象。除了错误消息,您还应该阅读您正在使用的类的 javadoc。
标签: java