当前位置: 首页 > 知识库问答 >
问题:

解决Mac和Windows之间的路径差异

吕霖
2023-03-14

我是Stack Overflow的新手,也是编程的新手,所以希望这有意义。我正在编写一个java程序,在特定目录中创建一个文件。我的程序在Windows上运行并在正确的位置创建一个文件,但在Mac上不起作用。我尝试过将反斜杠更改为单个正斜杠,但不起作用。我应该如何更改代码以使其适用于Mac或理想情况下适用于两者?我在下面放了一些代码。

提前感谢!

为文件创建新路径的类:

try{
        //Create file path
        String dirpath = new ReWriterRunner().getPath()+"NewFiles";

        //Create directory if it doesn't exist
        File path = new File(dirpath);
        if (!path.exists()) {
            path.mkdir();
        }

        //Create file if it doesn't exist
        File readme = new File(dirpath+"\\README.md");
        if (!readme.exists()) {
            readme.createNewFile();
        }

获取用户输入文件放置位置的方法:

public static String getPath(){
    String s;
    Scanner in = new Scanner(System.in);
    System.out.println("Enter the directory name under which the project files are stored.");
    System.out.println("Example: C:\\Users\\user\\work\\jhipstertesting)");
    System.out.println("Use double slashes when typing.");
    s = in.nextLine();
    return s;
}

共有2个答案

熊嘉茂
2023-03-14

此处必须使用正斜杠“/”获取文件路径。对于ex。

File f = new File("/Users/pavankumar/Desktop/Testing/Java.txt");
f.createNewFile();
董飞
2023-03-14

您可以使用系统属性来标识当前正在操作的系统。。更多信息,请访问https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html

但我更喜欢用NIO但那是你的选择

https://docs.oracle.com/javase/tutorial/essential/io/fileio.html

 类似资料:
  • 本文向大家介绍数据路径之间的差异,包括了数据路径之间的差异的使用技巧和注意事项,需要的朋友参考一下 数据路径 CPU有两个部分,数据部分和控制部分。数据部分也称为数据路径。寄存器,ALU和互连总线共同构成一条数据路径。数据路径分为三种类型: 单周期 多周期 管道 以下是单周期,多周期和管道数据路径之间的一些重要区别。 序号 键 单周期 多周期 管道 1 单周期具有一个CPI(每个指令的时钟周期)。

  • 问题内容: 我有一个带有键侦听器的JList,使用户可以轻松地从列表中删除项目。在Windows上,它工作正常。您按删除键,该项目将被删除。在Mac上,程序不响应删除键。我正在使用,我认为这是检测特殊密钥的平台无关的方法。我应该在Mac上检测按键的方式吗? 问题答案: 例如

  • 我采取的步骤: 获取Windows路径>回显%路径% 选择相关路径并转换为bash兼容(例如:\java变为/mnt/c/java) 启动bash&编辑.bashrc 追加到.bashrc中,例如>export PATH=${PATH}://bin://mnt/c/java/bin://mnt/c/node

  • 问题内容: 引用路径时,两个星号而不是一个星号有什么区别? 之前我在调试Spring 3项目。我正在尝试使用添加.swf 我的web.xml的ResourceServlet看起来像 但是不幸的是我遇到了这个错误: 我发现这真的很奇怪,因为访问了该文件夹中的所有图像,但是为什么.swf受到了“保护”? 之后,我决定将更改为,终于可以了。我的问题是…为什么? 问题答案: 这是Spring团队使用的路径

  • 问题内容: 我有一个名为jobrunner.py的脚本,该脚本在main.py中调用类方法。见下文… 进程_a和_b调用在OSX和Ubuntu上没有任何问题,但是当我尝试在Windows(相同版本的python和所有版本)上运行相同的东西时,它不能说索引超出范围。这使我相信在Windows平台上的模块之间未设置或传递“全局”变量BBOX。有没有其他人看到过这样的东西并且知道如何解决? 亚当 更新:

  • 问题内容: 很快就有两个相等运算符:double equals( )和Triple equals( ),两者之间有什么区别? 问题答案: 简而言之: 操作员检查其实例值是否相等, 操作员检查引用是否指向同一实例, 长答案: 类是引用类型,可能有多个常量和变量在幕后引用类的同一单个实例。类引用保留在运行时堆栈(RTS)中,其实例保留在内存的堆区域中。当您控制平等时, 这意味着它们的实例是否彼此相等。