【问题标题】:Using environment variables in a Java File Path在 Java 文件路径中使用环境变量
【发布时间】:2023-03-24 21:04:01
【问题描述】:

我正在编写一个 Java 程序来将 XLS 文件转换为 CSV 文件,以便某些 Python 解析器对其进行操作。

每天在我的桌面上(我使用的是 Ubuntu btw)我有一个名为“DFiles”的文件夹,其中还有一个名为“20140705”的文件夹(这个文件夹是动态生成的,明天其他一些程序会删除这个文件夹并制作一个名为 20140706 的新文件夹)。在此文件夹中有一个 xls 文件,其名称始终为“data.xls”。我已经有了将其转换为 CSV 的代码。

所以这是我的问题。明天我的代码将在别人的桌面(也是 Ubuntu)上运行。所以在给出路径时

input_document = new FileInputStream(new File("/home/local/TNA/srini/Desktop/DFiles/20140705/data.xls"+)); 

不幸的是,这只适用于今天,并且只能在我的电脑上使用。

理想情况下,我想做一些事情,比如将路径设置为“$HOME/Desktop/Dfiles/2*/data.xls”作为文件路径。那么如何在 java 的文件路径中使用 bash 环境变量和通配符呢?

【问题讨论】:

    标签: java bash shell unix ubuntu


    【解决方案1】:

    您可以使用System.getenv(...)获取环境变量的值:

    String homeDir = System.getenv("HOME");
    String directory = homeDir + "/Desktop/DFiles/...";
    

    通配符:那行不通。可以使用listFiles()列出某个目录下的文件和目录。

    File dir = new File(homeDir + "/Desktop/DFiles";
    for (File f : dir.listFiles()) {
        if (f.isDirectory()) {
            System.out.println("Found subdirectory: " + f.getName());
        } else {
            System.out.println("Found file: " + f.getName());
        }
    }
    

    您可以编写一些代码,递归地进入子目录并选取名称以“.xls”结尾的任何文件。

    【讨论】:

    • 好的,我试试。你能告诉我如何在文件路径中使用通配符(*)吗?
    猜你喜欢
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多