用正斜杠替换反斜杠

4
我有以下路径: com/teama/merc/test/resTest 我想将它转换为这个: com\teama\merc\test\resTest 我试图将上面的路径附加到此路径: C:\Users\Toby\git\MERCury\MERCury\ 使用 str.replace('/', '\\'); 但是当我将两个字符串连接在一起时,输出如下: C:\Users\Toby\git\MERCury\MERCury\com/teama/merc/test/resTest 下面是相关代码:
    String home = System.getProperty("user.dir");
    path.replace('/', '\\');
    System.out.println(path);

    String folder = home + File.separatorChar + path;
    System.out.println(folder);

    File file = new File(folder);
    if(file.isDirectory())
    {
        System.out.println(file.getPath() + " is a directory");
    }

附加的路径由于斜杠的原因不被视为文件夹。需要帮助吗?
编辑: 仅澄清,完整路径(两个字符串附加)实际上是一个文件夹。

除非特别需要使用‘\’,否则建议使用System.getProperty("file.separator");来代替。详见File文档 - Java Devil
1
为什么?在Java中,无论哪种方式都可以将其作为文件名。注意,您的标题与问题相反。 - user207421
不,它没有起作用。我完全不知道为什么会说它可以工作。 - user3316633
当使用文件打开时,完整的附加路径没有打印出它是一个文件夹。我不知道为什么,但它确实没有。试图说服我你是对的并没有帮助,我并不是说你错了,我只是说它并不按照你所说的方式工作。 - user3316633
仅仅告诉我们它不起作用而没有证据也没有帮助。如果 user.dir + path 没有被注册为目录,那么它很可能不是一个目录。你还没有提供任何反证。尝试使用 'new File(home, path).isDirectory()'。 - user207421
显示剩余2条评论
1个回答

8

在Java中,字符串是不可变的。因此,当您使用类似于replace方法的东西更改它们时,您必须将变量重新分配给已更改的字符串。所以,您需要将替换代码更改为以下内容:

path = path.replace('/', '\\');

我忘记了那件事,真是尴尬... - user3316633

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接