我目前能够使用下面的代码列出当前目录的内容。但是,我想添加一个命令行参数来列出当前目录中目录的内容。我在检查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);
}
}
}
答案 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);
}
}
}