gpt4 book ai didi

java - 如何让 OS X 识别驱动器盘符?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:31:36 25 4
gpt4 key购买 nike

我知道。异端。但我进退两难。我有很多使用绝对路径名的配置文件,这导致 OS X 和 Windows 之间不兼容。如果我能让 OS X(我打赌它是两者中更灵活的那个)将 Q:/foo/bar/bim.properties 识别为有效的绝对文件名,它将保存我 的工作是通过堆栈跟踪和配置文件进行探索。

最后,我需要这段 Java 测试代码来打印“SUCCESS!”运行时:

import java.io.*;

class DriveLetterTest {
static public void main(String... args) {
File f = new File("S:");
if (f.isDirectory()) {
System.out.println("SUCCESS!");
} else {
System.out.println("FAIL!");
}
}
}

有人知道如何做到这一点吗?

更新:感谢大家的所有反馈。现在对我来说很明显我真的应该在我的问题中更清楚。

配置文件和使用它们的代码都属于我无法更改的第三方包。 (好吧,我可以更改它们,但这意味着会产生持续的维护负担,我希望尽可能避免这种情况。)

完全同意所有对这种事态感到震惊的人。但事实是:我无法更改第三方代码,而且我真的想避免 fork 配置文件。

最佳答案

简答:不。
长答案:对于 Java,您应该使用 System.getProperties(XXX)。然后,您可以根据在 os.name 中找到的内容加载属性文件或配置。
替代解决方案当您读取非 Windows 机器上的现有配置文件并用适当的东西替换它们时,只需剥离 S:
意见:就我个人而言,我现在会硬着头皮处理技术债务,在构建 OSX 部署时在构建时修复所有配置文件并完成它。

public class WhichOS
{
public static void main(final String[] args)
{
System.out.format("System.getProperty(\"os.name\") = %s\n", System.getProperty("os.name"));
System.out.format("System.getProperty(\"os.arch\") = %s\n", System.getProperty("os.arch"));
System.out.format("System.getProperty(\"os.version\") = %s\n", System.getProperty("os.version"));
}
}

我的 iMac 上的输出是:

System.getProperty("os.name") = Mac OS X
System.getProperty("os.arch") = x86_64
System.getProperty("os.version") = 10.6.4

关于java - 如何让 OS X 识别驱动器盘符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3258426/

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