2.2.3 移除冗余项

(一个点).表示当前目录;

(两个点)..表示父目录;

冗余情况1:log.txt与./log.txt等价,即./log.txt中的./就是一个冗余项;

冗余情况2:符号链接(快捷方式(shortcut)是一种功能上类似符号链接的文件对象,但与符号链接有本质的不同。【符号链接_百度百科】);

 

移除冗余项的方法
normalize() 移除冗余
toRealPath()

normalize()+toAbsolutePath()

移除冗余+绝对地址

Demo:

import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 * @author jinxing
 * @备注 toRealPath() 和 toRealPath(LinkOption.NOFOLLOW_LINKS) 应该可以用于符号链接返回真实地址;【但我对符号链接并不了解,在这里会报错,先注释了;】
 */
public class PathRemoveRedundant {
    
    public static void main(String[] args) throws IOException {
        
        // 相对地址
        Path pathRel = Paths.get("./PathRemoveRedundant.java");
        
        // 移除[相对地址中的]冗余[地址]
        Path pathRelRR = pathRel.normalize();
        
        // 绝对地址
        Path pathAbs = pathRel.toAbsolutePath();
        
        // 绝对地址+去除冗余
//      Path pathAbsRR = pathRel.toRealPath();
//      Path pathAbsRR = pathRel.toRealPath(LinkOption.NOFOLLOW_LINKS);
        
        // show
        System.out.println(pathRel);
        System.out.println(pathRelRR);
        System.out.println(pathAbs);
//      System.out.println(pathAbsRR);
        
    }

}

Ran As Java Application:

./PathRemoveRedundant.java
PathRemoveRedundant.java
/Users/jinxing/Documents/workspace/nio.2/./PathRemoveRedundant.java

 

posted @ 2016-01-06 12:39  springup  阅读(461)  评论(0)    收藏  举报