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

浙公网安备 33010602011771号