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

Java:如何用nio路径规范化路径?

柴华灿
2023-03-14

(还要注意,我处理的是其他系统的抽象路径,这与任何本地文件系统无关)

我想要的行为的进一步示例:

 - "/foo" -> "/foo"
 - "//foo/" -> "/foo"
 - "foo/" -> "/foo"
 - "foo/bar" -> "/foo/bar"
 - "foo/bar/../baz" -> "/foo/baz"
 - "foo//bar" -> "/foo/bar"

共有1个答案

奚晟
2023-03-14
public final class Foo
{
    private static final List<String> INPUTS = Arrays.asList(
        "/foo", "//foo", "foo/", "foo/bar", "foo/bar/../baz", "foo//bar"
    );

    public static void main(final String... args)
    {
        Path path;

        for (final String input: INPUTS) {
            path = Paths.get("/", input).normalize();
            System.out.printf("%s -> %s\n", input, path);
        }
    }
}
/foo -> /foo
//foo -> /foo
foo/ -> /foo
foo/bar -> /foo/bar
foo/bar/../baz -> /foo/baz
foo//bar -> /foo/bar
try (
    final FileSystem fs = MemoryFileSystem.newLinux().build();
) {
    // path operations here
}
 类似资料:
  • 问题内容: 真正令人高兴的事情之一是它可以 将路径标准化 为 可预测的格式 。 始终返回已规范化相对路径的字符串,并且始终以可预测的路径分隔符开始和结束。 有没有办法用新的nio 或class 做到这一点? (还请注意,我正在处理其他系统的抽象路径,这与任何本地文件系统无关) 我想要的行为的更多示例: 问题答案: 此代码有效: 输出: 注意,这不是便携式的。在Windows机器上将无法使用… 如果

  • 问题内容: 我想转变成 是否有执行此操作的bash命令? 编辑:在我的实际情况下,该目录确实存在。 问题答案: 如果您想从路径中截取一部分文件名,则“ dirname”和“ basename”是您的朋友,并且“ realpath”也很方便。 备择方案 如果您的外壳不支持,则可以尝试 也 与…相同 因为不需要标准化路径。

  • 斜杠的数目可以是任意数目。如何在java中规范化路径,比如:

  • 首先,我不完全确定这是正确的问题。基本上,我的最终目标是生成一个可以操作一组。docx文件的程序,以便对每个文件进行小的更改。在我看来,docx4j是实现这一目标的最佳方式。但是,我从来没有使用过提供的库之外的库。我首先试图破译手册中提供的所有信息,然后告诉我需要SLF4J才能使用Docx4J。 从这一点来看,我想我做错了什么。我很确定我知道我想写的程序背后的伪逻辑,但我不确定如何写它。我还没有做

  • 使用指南 - 统计设置 - 转化设置 - 转化路径如何设置 在设置页面转化时,选择开启转化路径。 点击开启后界面如图所示: 若到达目标页面需要多个步骤,可点击①位置增加步骤。 若该步骤可以有多个页面,经过其中任意一个页面都算作经过该步骤,可以点击②位置增添该步骤的网址,网址内容也支持使用通配符。 系统默认只要到达目标页面都会计为转化。若我们认为必须经过某个步骤后到达目标页面的行为才可以计为转化,可

  • 功能介绍 获取路径转化漏斗的漏斗图和转化图数据。 接口 https://openapi.baidu.com/rest/2.0/mtj/svc/app/getDataByKey 请求参数 此处仅列本接口特有参数,公共参数请参考报告级API说明 获取表格数据 参数名 参数类型 是否必须 描述 method string 是 conversion/pathconversion/a;conversion