【问题标题】:file path Windows format to java format文件路径 Windows 格式转 java 格式
【发布时间】:2010-06-17 06:30:01
【问题描述】:

我需要将 Windows 中的文件路径转换为 ​​C:\Documents and Settings\Manoj\Desktop for java 为 C:/Documents and Settings/Manoj/Desktop 。

有没有像这样转换的实用程序。?

【问题讨论】:

  • 你为什么需要这个?因为通常在文件处理中,java 可以自动处理这些转换...
  • @Nivas 它在 Windows 10 下给出了 File Not found 错误。

标签: java


【解决方案1】:
String path = "C:\\Documents and Settings\\Manoj\\Desktop";
path = path.replace("\\", "/");
// or
path = path.replaceAll("\\\\", "/");

Docs了解更多详情

【讨论】:

    【解决方案2】:
    String path = "C:\\Documents and Settings\\Manoj\\Desktop";
    String javaPath = path.replace("\\", "/"); // Create a new variable
    

    path = path.replace("\\", "/"); // Just use the existing variable
    

    Strings 是不可变的。一旦创建,您就无法更改它们。这意味着replace 返回一个新字符串,其中目标("\\")被替换("/")替换。简单地调用replace 不会改变path

    replaceAllreplace 的区别在于replaceAll 会搜索正则表达式,replace 不会。

    【讨论】:

      【解决方案3】:

      Java 7 及更高版本支持Path 类(在 java.nio 包中)。 您可以使用此类将字符串路径转换为适用于您当前操作系统的字符串路径。

      使用:

      Paths.get("\\folder\\subfolder").toString()
      

      在 Unix 机器上,会给你/folder/subfolder。反过来也可以。

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

      【讨论】:

        【解决方案4】:

        检查一下

        在 MacOS 中

        File directory = new File("/Users/sivo03/eclipse-workspace/For4DC/AutomationReportBackup/"+dir);
        File directoryApache = new File("/Users/sivo03/Automation/apache-tomcat-9.0.22/webapps/AutomationReport/"+dir); 
        

        和我们在 windows 中使用的一样

        File directory = new File("C:\\Program Files (x86)\\Jenkins\\workspace\\BrokenLinkCheckerALL\\AutomationReportBackup\\"+dir);
        File directoryApache = new File("C:\\Users\\Admin\\Downloads\\Automation\\apache-tomcat-9.0.26\\webapps\\AutomationReports\\"+dir);
        
        

        使用双反斜杠代替单前斜杠

        所以不需要任何转换工具,只需使用查找和替换

        “C:\Documents and Settings\Manoj\Desktop” 至 "C:\\Documents and Settings\\Manoj\\Desktop"

        【讨论】:

          【解决方案5】:
          String path = "C:\\Documents and Settings\\someDir";
          path = path.replaceAll("\\\\", "/");
          

          在 Windows 中,您应该使用四个反斜杠,而不是两个。

          【讨论】:

          • 形成字符串,表示匹配反斜杠的正确正则表达式需要四个反斜杠,并且在期望正则表达式作为参数的replaceAll方法的上下文中示例为真,但通常情况并非如此
          • 嗯,当实际接受的答案基本相同时,为什么这条评论被否决了?
          • @guenhter 也许是因为它是在接受答案后 6 年多才发布的,并且没有添加任何新内容,正如您所指出的那样,相同。发布现有答案的副本不会增加任何价值,只会产生不必要的噪音
          • 有道理。谢谢
          猜你喜欢
          • 2012-04-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-27
          相关资源
          最近更新 更多