gpt4 book ai didi

java - 在 Java 中使用 File.listFiles() 在 Linux 环境中列出项目目录中的文件

转载 作者:太空宇宙 更新时间:2023-11-04 09:41:56 26 4
gpt4 key购买 nike

String path = ".";
String files="";
File folder = new File(path);
File[] listOfFiles = folder.listFiles();

for (int i = 0; i < listOfFiles.length; i++)
{
if (listOfFiles[i].isFile())
{
files = listOfFiles[i].getName();
System.out.println("files::::::::::::"+files);
}
}

说上面的java文件我保存在路径D:/spike/FileList.java下。

在上面的代码中,如果我在 windows 平台 中运行,它将列出 'spike' 目录下的文件。

但是当我将它保存在 Linux 环境中时,说路径是 usr/local/apache/webapps/webtest/src/FileList.java

我得到的结果是根目录下的文件。

我需要的是在项目根目录下,也就是上面例子中的webtest目录下。

我怎样才能做到这一点。我的要求是我需要首先列出文件,然后从我需要读取的文件列表中读取 sample.properties 文件。

我知道我们可以对路径进行硬编码以获得相同的路径。但是如果不进行硬编码,我如何才能获得 webapps 项目根文件夹下的文件列表,即在我的例子中,在 webtest 文件夹下。

我也试过读取环境变量。但这里的问题是我的 apache 文件夹所有者是 spike 而不是 root。因此,当我执行 System.getenv() 时,我得到的只是用户 spike 设置的任何变量。

但是当我从所有者为 root 的任何其他文件夹执行 System.getenv() 时,我会得到完整的环境变量。

那么有没有什么方法可以通过使用上面的 java 代码片段而不对路径进行硬编码来获取项目根文件夹?

顺便说一句,这是一个部署在tomcat中的web应用程序。首先,应用程序将从 server.properties 文件中读取详细信息。但是我不应该在路径从系统更改到系统时对路径进行硬编码。所以我的意图是代码从项目起始文件夹中读取属性文件。

最佳答案

这不是真的,你的代码在 Linux 上打印当前文件夹中的文件。我刚刚试过了。

关于tomcat,看这里 What determines the current working directory of Tomcat Java process?和/或在 Tomcat 站点上查找类似信息。

关于java - 在 Java 中使用 File.listFiles() 在 Linux 环境中列出项目目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20495395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com