【问题标题】:Not too sure how a URI works regarding absolute paths to files不太确定 URI 如何处理文件的绝对路径
【发布时间】:2012-07-25 20:13:54
【问题描述】:

简单的问题:为什么我在尝试使用以下 URI 创建 zip 文件系统时收到 new IllegalArgumentException: Path component should be '/'

文件:E:/somedirectory/somefile

但这似乎可行:file:/somedirectory/somefile

如果我在两个不同的驱动器上有相同的路径并且我需要访问一个特定的驱动器怎么办?还是我一开始就完全忽略了 URI 的意义?

【问题讨论】:

    标签: java windows io


    【解决方案1】:

    对于使用 Windows 卷的路径,请使用以下格式:

    file:///e:/somedirectory/somefile
    

    三元组/// 是由于省略了本地文件的URL 主机名。比较:file://sometherhost/e:/somedirectory/somefile,根据 URI 规范有效,如果对访问远程卷上的文件实际上没有用处。

    【讨论】:

    • 需要注意的是,file:// 带有主机名的 URI 根据规范是有效的,但是没有指定访问它们的方法,所以它们几乎用于信息用途,而不是实际 访问那些(远程)文件。
    【解决方案2】:

    1.反斜杠用于指向目录和文件

    2.试试这个方法...

             `E:\\somedirectory\\somefile`
    

    【讨论】:

      【解决方案3】:

      也许使用 URI 构建器更容易做到这一点。我总是用它:

      URIBuilder builder = new URIBuilder();
      builder.setSchema("file").setHost("anyhost").setPath("/yourpath/");
      URI uri;
      uri = builder.build();
      

      您可以检查您的 URI:

      System.out.println(uri.toString());
      

      希望对你有帮助!

      【讨论】:

      • 这门课来自哪里?我在任何地方都找不到它。
      • URIBuilder 是 .NET 的一部分。这个问题是关于java的
      • 我在 java 项目中使用了上面的代码 ;-) 这是我必须导入 org.apache.http.client.utils.URIBuilder 的包。不知道在哪里下载的,不好意思。但它肯定是 java 代码
      猜你喜欢
      • 2010-12-17
      • 2014-06-27
      • 2014-01-15
      • 1970-01-01
      • 2010-10-22
      • 2021-06-15
      • 2012-09-23
      • 2012-04-30
      • 2011-06-12
      相关资源
      最近更新 更多