有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如果我已经编写了显示目录的代码,我将如何制作它,以便java能够说明这个结果是一个文件,还是另一个目录/文件夹?

所以这个程序目前列出了一个目录中的所有文件夹和文件。我想知道是否可以添加另一段代码,说明输出是文件还是目录。例如,如果它输出“Test.txt”,那么它将显示类似“Test.txt=a file”的内容。 谢谢

import java.io.File;

public class CS1702_Lab7ex7_5 {
public static void main(String args[])
{
    String dir_name = "c:\\temp\\"; //Or another directory
    File dir = new File(dir_name);

    File[] dir_list = dir.listFiles();
    for(int i=0;i<dir_list.length;++i)
    {
        System.out.println(dir_list[i].getName());
    }

}

}


共 (3) 个答案

  1. # 1 楼答案

    您可以对返回的条目列表中的条目使用dir_list.isDirectory()

  2. # 2 楼答案

    只有两种可能性:

    1. 是目录吗
    2. 是文件

    您可以使用评估表达式,并使用以下两个可用句子之一:

    import java.io.File;
    
    public class CS1702_Lab7ex7_5 {
        public static void main(String args[]) {
            String dir_name = "c:\\tomcat\\apache-tomcat-7.0.72"; // Or another
                                                                // directory
         File dir = new File(dir_name);
    
        File[] dir_list = dir.listFiles();
        for (int i = 0; i < dir_list.length; ++i) {
            /*
             * dir_list[i].isDirectory(): True, print directory. False, print
             * "File"
             */
            System.out.println(dir_list[i].getName() + (dir_list[i].isDirectory() ? " Directory" : " File"));
        }
    
    }
    

    }

  3. # 3 楼答案

    看看java File API

    isDirectory()返回文件是否为目录

    isFile()如果是文件,则返回

    还可以使用for each循环来迭代文件:

    public void listAllFiles(File folder, boolean subfolders) {
        for (final File fileEntry : folder.listFiles()) {
            if (fileEntry.isDirectory()) {
                System.out.println(fileEntry.getName() + " (folder)");
                if(subfolders)
                    listAllFiles(fileEntry, subfolders);
            } else if(fileEntery.isFile()){
                System.out.println(fileEntry.getName() + " (file) ["+getProperties(fileEntry)+"]");
            }
        }
    }
    
    public String getProperties(File f) {
        String prop = "";
        prop += f.canRead()?"+r":"";
        prop += f.canWrite()?"+w":"";
        prop += f.canExecute()?"+e":"";
        prop += f.isHidden()?"+h":"";
    
        return prop;
    }