有 Java 编程相关的问题?

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

如何使此文件i/O Java程序在Unix中运行?

下面是打印所有文件的程序&;指定路径中的文件夹

import java.io.File;

public class ListDirectoryRecursive{

    public static void listRecursive(File dir){
        if(dir.isDirectory()){
            File[] items = dir.listFiles();
            for(File item : items){
                System.out.println(item.getAbsoluteFile());
                if(item.isDirectory()){
                    listRecursive(item);
                }
            }
        }
    }

    public static void main(String[] args){
        /* Unix path is: /usr/home/david/workspace/JavaCode */
        File dir = new File("C:\\Users\\david\\workspace\\JavaCode");
        listRecursive(dir);
    }
}

如何使这个java程序在Unix上运行?使该程序可移植的标准方法是什么

编辑:我想,我们知道在任何操作系统上,用户主目录都是环境设置的一部分,其值在windows中为“c:\users\david”,在Unix中为“/user/home/david”


共 (3) 个答案

  1. # 1 楼答案

    请不要重复密码

    File dir = new File("C:\\Users\\david\\workspace\\JavaCode");
    

    使用System.getProperty("user.home");获取/usr/home/davidC:\Users\david\目录 就像

    String path = System.getProperty("user.home") + File.separator + "workspace" + File.separator + "JavaCode";
    File dir = new File(path);
    

    谢谢交流

  2. # 2 楼答案

    使硬编码的绝对路径C:\\Users\\david\\workspace\\JavaCode相对

  3. # 3 楼答案

    通过args将目录作为参数:

    File dir = new File(args[1]);
    

    (当然,检查args.length是否足够)

    然后你可以简单地做

    java ListDirectoryRecursive C:\Users\david\workspace\JavaCode
    

    在窗户上,以及

    java ListDirectoryRecursive ~david/workspace/JavaCode
    

    在UNIX上。这有一个明显的优点,即允许您使用此程序列出任何目录,而不是硬编码路径