java - 在java中无需硬编码即可设置文件位置

标签 java file

有没有办法可以使用某些函数来动态设置文件的位置(目录)?

每次我使用这样的硬编码文件位置

    String folder = "/Users/...../Desktop/sample";
    File dir = new File(folder);
    File[] files = dir.listFiles();

有什么方法可以避免硬编码吗?我使用的位置不是我当前的目录。

赞赏这方面的建议或帮助。 :)

最佳答案

据我所知,一些相当简单的方法是可行的,但可能并不完全是您想要的:

从类路径导航

ClassLoader cl = Thread.currentThread().getContextClassLoader();
URL url = cl.getResource("relative/path/from/classpath");

String path = getClass().getClassLoader().getResource(".").getPath();
<小时/>

使用包含路径条目的属性文件

Properties properties = new Properties();
properties.load(new FileInputStream("filename.properties"));
properties.getProperty("PATH")

在你的属性文件中,你会有这样一行

PATH = the/absolute/path
<小时/>

使用环境变量

System.getenv("THE_PATH_ENV")

环境变量中存储路径的位置(如果适用于您的操作系统)。

<小时/>

将路径作为参数给出 嗯,这个非常简单...只需访问 main 中的字符串数组...

public static void main(String[] args){
    String path = args[0]; //Or at whatever position it is in your parameter list
    ..
<小时/>

或者,我认为可以使用 Java 文件系统命令手动遍历目录结构并在其中搜索某些内容。不过,我不建议这样做,因为这不是它们的用途。如果有的话,我想我会求助于一些第 3 方 API。

关于java - 在java中无需硬编码即可设置文件位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12726002/

相关文章:

java - Spring Integration——聚合分散的消息

file - Phonegap/Cordova 3.6 - 通过 blob 下载文件 :file

c - 使用 fstat() 与 stat() 相比有什么优势?

java - 处理空指针异常

java - 如何将SUN jvm迁移到IBM jvm

C++ - 通过网络发送 "Email Attachments"

java - 追加到文件并从文件读取,但没有任何反应

java - REST 客户端 restTemplate 无法获取对象集合

java - 我们是否应该为带有选择下拉菜单的弹出窗口编写单独的页面对象?

java - 为什么 onCreate 被重写?