Where to use resolve() and relativize() method of java.nio.file.Path class?

后端 未结 5 1552
忘了有多久
忘了有多久 2021-02-07 12:12
Path p1 = Paths.get(\"/Users/jack/Documents/text1.txt\");
Path p2 = Paths.get(\"/Users/jack/text2.txt\");
Path result1 = p1.resolve(p2);
Path result2 = p1.relativize(p2)         


        
5条回答
  •  有刺的猬
    2021-02-07 12:50

    These are the code snippets from my code base that help you to understand the use of the resolve() method

    private File initUsersText() throws Exception
    {
        Path dir = testdir.getPath().toRealPath();
        FS.ensureDirExists(dir.toFile());
        File users = dir.resolve("users.txt").toFile();
    
        writeUser( users );
        return users;
    }
    
    
    private File initUsersText() throws Exception
    {
        Path dir = testdir.getPath().toRealPath();
        FS.ensureDirExists(dir.toFile());
        File users = dir.resolve("users.txt").toFile();
    
        writeUser( users );
        return users;
    }
    

    And these are the examples of the use of relativize()

    public ScopePath pathToClassName(Path file) {
        if (!isValidClass(file))
            return null;
    
        Path relativePath = root.relativize(root.resolve(file));
        String withoutExtension = removeExtension(relativePath.toString());
        return new ScopePath(withoutExtension.replace(File.separator, "."));
    }
    
    
    private String getRelativePath(Path p) {
        String relativePath = packageDir.relativize(p)
                .toString();
    
        if (File.separator.equals("\\")) {
            relativePath = relativePath.replace("\\", "/");
        }
    
        return relativePath;
    }
    

提交回复
热议问题