インタフェースPath
- ã™ã¹ã¦ã®ã‚¹ãƒ¼ãƒ‘ー・インタフェース:
Comparable<Path>,Iterable<Path>,Watchable
Pathã¯ã€ç‰¹åˆ¥ãªåŒºåˆ‡ã‚Šæ–‡å—ã§åŒºåˆ‡ã‚‰ã‚ŒãŸä¸€é€£ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªåãŠã‚ˆã³ãƒ•ァイルåã®è¦ç´ ã§æ§‹æˆã•ã‚Œã‚‹éšŽå±¤æ§‹é€ ã®ãƒ‘スを表ã—ã¾ã™ã€‚ ルート・コンãƒãƒ¼ãƒãƒ³ãƒˆ (ファイル・システム階層をè˜åˆ¥ã™ã‚‹ã‚‚ã®)ãŒå˜åœ¨ã™ã‚‹å ´åˆã‚‚ã‚りã¾ã™ã€‚ ディレクトリ階層ã®ãƒ«ãƒ¼ãƒˆã‹ã‚‰ã‚‚ã£ã¨ã‚‚é ã„åå‰è¦ç´ ã¯ã€ãƒ•ァイルã¾ãŸã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®åå‰ã§ã™ã€‚ ãã®ä»–ã®åå‰è¦ç´ ã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªåã§ã™ã€‚ Pathã¯ã€ãƒ«ãƒ¼ãƒˆã€ãƒ«ãƒ¼ãƒˆã¨ä¸€é€£ã®åå‰ã€ã¾ãŸã¯å˜ã«1ã¤ã¾ãŸã¯è¤‡æ•°ã®åå‰è¦ç´ ã®ã¿ã‚’表ã™ã“ã¨ãŒã§ãã¾ã™ã€‚ Pathã¯ã€1ã¤ã®ç©ºã®åå‰è¦ç´ ã®ã¿ã§æ§‹æˆã•ã‚Œã‚‹å ´åˆã¯ç©ºã®ãƒ‘スã¨ã¿ãªã•れã¾ã™ã€‚ 空ã®ãƒ‘スを使用ã—ã¦ãƒ•ァイルã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ã¯ã€ãƒ•ァイル・システムã®ãƒ‡ãƒ•ォルト・ディレクトリã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ã¨åŒã˜ã§ã™ã€‚ Pathã¯ã€ãƒ‘ス・コンãƒãƒ¼ãƒãƒ³ãƒˆã¾ãŸã¯ãã®åå‰è¦ç´ ã®ã‚µãƒ–シーケンスã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãŸã‚ã®getFileNameã€getParentã€getRootã€ãŠã‚ˆã³subpathメソッドを定義ã—ã¾ã™ã€‚
Pathã¯ã€ãƒ‘ス・コンãƒãƒ¼ãƒãƒ³ãƒˆã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã»ã‹ã«ã€ãƒ‘スをçµåˆã™ã‚‹ãŸã‚ã®resolveãŠã‚ˆã³resolveSiblingメソッドも定義ã—ã¾ã™ã€‚ relativizeメソッドを使用ã™ã‚‹ã¨ã€2ã¤ã®ãƒ‘ス間ã®ç›¸å¯¾ãƒ‘スを構築ã§ãã¾ã™ã€‚ startsWithãŠã‚ˆã³endsWithメソッドを使用ã—ã¦ãƒ‘ã‚¹ã‚’ç›¸äº’ã«æ¯”較ã—ãŸã‚Šã€ãƒ†ã‚¹ãƒˆã—ãŸã‚Šã§ãã¾ã™ã€‚
ã“ã®ã‚¤ãƒ³ã‚¿ãƒ•ェースã¯ã€Watchableインタフェースを拡張ã—ã¦ã€ãƒ‘ã‚¹ã§æ¤œç´¢ã•れるディレクトリをWatchServiceã¨ç›£è¦–ã•れるディレクトリ内ã®ã‚¨ãƒ³ãƒˆãƒªã«ç™»éŒ²ã§ãã¾ã™ã€‚
è¦å‘Š: ã“ã®ã‚¤ãƒ³ã‚¿ãƒ•ェースã¯ã€ã‚«ã‚¹ã‚¿ãƒ ・ファイル・システムã®å®Ÿè£…を開発ã™ã‚‹äººã«ã‚ˆã£ã¦å®Ÿè£…ã•れるã“ã¨ã®ã¿ã‚’目的ã¨ã—ã¦ã„ã¾ã™ã€‚ å°†æ¥ã®ãƒªãƒªãƒ¼ã‚¹ã§ã¯ã€ã“ã®ã‚¤ãƒ³ã‚¿ãƒ•ェースã«ãƒ¡ã‚½ãƒƒãƒ‰ãŒè¿½åŠ ã•れるå¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚
ファイルã¸ã®ã‚¢ã‚¯ã‚»ã‚¹
Filesクラスã§Pathを使用ã™ã‚‹ã“ã¨ã§ã€ãƒ•ァイルã€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€ãŠã‚ˆã³ãã®ä»–ã®ç¨®é¡žã®ãƒ•ァイルをæ“作ã§ãã¾ã™ã€‚ ãŸã¨ãˆã°ã€BufferedReaderã§ãƒ•ァイル「access.logã€ã‹ã‚‰ãƒ†ã‚ストをèªã¿å–ã‚‹ã¨ã—ã¾ã™ã€‚ ファイルã¯ã€ç¾åœ¨ã®ä½œæ¥ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‹ã‚‰ã®ç›¸å¯¾ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€Œlogsã€ã«ã‚りã€UTF-8å½¢å¼ã§ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れã¦ã„ã¾ã™ã€‚
Path path = FileSystems.getDefault().getPath("logs", "access.log");
BufferedReader reader = Files.newBufferedReader(path, StandardCharsets.UTF_8);
相互é‹ç”¨æ€§
デフォルト・プãƒãƒã‚¤ãƒ€ã«é–¢é€£ä»˜ã‘られãŸPathã¯é€šå¸¸ã€java.io.Fileクラスã¨ç›¸äº’é‹ç”¨å¯èƒ½ã§ã™ã€‚ ã»ã‹ã®ãƒ—ãƒãƒã‚¤ãƒ€ã«ã‚ˆã£ã¦ä½œæˆã•れãŸPathã¯ã€java.io.Fileã§è¡¨ã•れる抽象パスåã¨ç›¸äº’é‹ç”¨å¯èƒ½ã§ã‚ã‚‹ã“ã¨ã¯ã¾ã‚Œã§ã™ã€‚ toPathメソッドを使用ã™ã‚‹ã¨ã€java.io.Fileオブジェクトã§è¡¨ã•れる抽象パスåã‹ã‚‰Pathã‚’å–å¾—ã§ãã¾ã™ã€‚ çµæžœã®Pathを使用ã™ã‚‹ã¨ã€java.io.Fileオブジェクトã¨åŒã˜ãƒ•ァイルをæ“作ã§ãã¾ã™ã€‚ ã¾ãŸã€toFileメソッドã¯ã€Pathã®String表ç¾ã‹ã‚‰ Fileを構築ã™ã‚‹å ´åˆã«ä¾¿åˆ©ã§ã™ã€‚
åŒæ™‚実行性
ã“ã®ã‚¤ãƒ³ã‚¿ãƒ•ェースã®å®Ÿè£…ã¯ä¸å¤‰ã§ã‚りã€è¤‡æ•°ã®ä¸¦è¡Œã‚¹ãƒ¬ãƒƒãƒ‰ã§å®‰å…¨ã«ä½¿ç”¨ã§ãã¾ã™ã€‚
- å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 1.7
-
メソッドã®ã‚µãƒžãƒªãƒ¼
修飾åã¨åž‹ãƒ¡ã‚½ãƒƒãƒ‰èª¬æ˜Žint2ã¤ã®æŠ½è±¡ãƒ‘ã‚¹ã‚’èªžå½™çš„ã«æ¯”較ã—ã¾ã™ã€‚default booleanã“ã®ãƒ‘スãŒã€endsWith(Path)ãƒ¡ã‚½ãƒƒãƒ‰ã§æŒ‡å®šã•れãŸã¨ãŠã‚Šã®æ–¹æ³•ã§æŒ‡å®šã®ãƒ‘ス文å—列を変æ›ã™ã‚‹ã“ã¨ã§æ§‹ç¯‰ã•れるã€Pathã§çµ‚ã‚ã‚‹ã‹ã©ã†ã‹ã‚’テストã—ã¾ã™ã€‚booleanã“ã®ãƒ‘スãŒã€æŒ‡å®šã•れãŸãƒ‘スã§çµ‚ã‚ã‚‹ã‹ã©ã†ã‹ã‚’テストã—ã¾ã™ã€‚booleanã“ã®ãƒ‘ã‚¹ãŒæŒ‡å®šã•れãŸã‚ªãƒ–ジェクトã¨ç‰ã—ã„ã‹ã©ã†ã‹ã‚’テストã—ã¾ã™ã€‚ã“ã®ãƒ‘スãŒç¤ºã™ãƒ•ァイルã¾ãŸã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®åå‰ã‚’Pathオブジェクトã¨ã—ã¦è¿”ã—ã¾ã™ã€‚ã“ã®ã‚ªãƒ–ジェクトを作æˆã—ãŸãƒ•ァイル・システムを返ã—ã¾ã™ã€‚getName(int index) ã“ã®ãƒ‘スã®åå‰è¦ç´ ã‚’Pathオブジェクトã¨ã—ã¦è¿”ã—ã¾ã™ã€‚intパス内ã®åå‰è¦ç´ ã®æ•°ã‚’è¿”ã—ã¾ã™ã€‚親ã®ãƒ‘スを返ã—ã¾ã™ã€‚ã“ã®ãƒ‘スãŒè¦ªã‚’æŒãŸãªã„å ´åˆã¯nullã‚’è¿”ã—ã¾ã™ã€‚getRoot()ã“ã®ãƒ‘スã®ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã‚’Pathオブジェクトã¨ã—ã¦è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ‘スãŒãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã‚’æŒãŸãªã„å ´åˆã¯nullã‚’è¿”ã—ã¾ã™ã€‚inthashCode()ã“ã®ãƒ‘スã®ãƒãƒƒã‚·ãƒ¥ãƒ»ã‚³ãƒ¼ãƒ‰ã‚’計算ã—ã¾ã™ã€‚booleanã“ã®ãƒ‘スãŒçµ¶å¯¾ã‹ã©ã†ã‹ã‚’通知ã—ã¾ã™ã€‚iterator()ã“ã®ãƒ‘スã®åå‰è¦ç´ を処ç†ã™ã‚‹ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ‘スã‹ã‚‰å†—é•·ãªåå‰è¦ç´ を削除ã—ãŸãƒ‘スを返ã—ã¾ã™ã€‚static Pathパス文å—列ã€ã¾ãŸã¯çµåˆæ™‚ã«ãƒ‘ス文å—列を形æˆã™ã‚‹æ–‡å—列ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‚’変æ›ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€Pathã‚’è¿”ã—ã¾ã™ã€‚static PathURIを変æ›ã™ã‚‹ã“ã¨ã«ã‚ˆã£ã¦Pathã‚’è¿”ã—ã¾ã™ã€‚default WatchKeyregister(WatchService watcher, WatchEvent.Kind<?>... events) ã“ã®ãƒ‘ã‚¹ã§æ¤œå‡ºã•れãŸãƒ•ァイルを監視サービスã«ç™»éŒ²ã—ã¾ã™ã€‚register(WatchService watcher, WatchEvent.Kind<?>[] events, WatchEvent.Modifier... modifiers) ã“ã®ãƒ‘ã‚¹ã§æ¤œå‡ºã•れãŸãƒ•ァイルを監視サービスã«ç™»éŒ²ã—ã¾ã™ã€‚relativize(Path other) ã“ã®ãƒ‘ã‚¹ã¨æŒ‡å®šã•れãŸãƒ‘スã¨ã®é–“ã®ç›¸å¯¾ãƒ‘スを構築ã—ã¾ã™ã€‚default Path指定ã•れãŸãƒ‘ス文å—列をPathã«å¤‰æ›ã—ã¦ã‹ã‚‰ã€resolveãƒ¡ã‚½ãƒƒãƒ‰ã§æŒ‡å®šã•れãŸã¨ãŠã‚Šã®æ–¹æ³•ã§ã€ã“ã®Pathã«å¯¾ã—ã¦è§£æ±ºã—ã¾ã™ã€‚default Pathパス文å—列をパスã«å¤‰æ›ã—ã€ãã®ãƒ‘スをã“ã®ãƒ‘スã«å¯¾ã—ã¦è§£æ±ºã—ã¦ã‹ã‚‰ã€è¿½åŠ ã®ãƒ‘ス文å—列ã«å¯¾ã—ã¦åŒã˜ãƒ—ãƒã‚·ãƒ¼ã‚¸ãƒ£ã‚’繰り返ã—実行ã—ã¾ã™ã€‚指定ã•れãŸãƒ‘スをã“ã®ãƒ‘スã«å¯¾ã—ã¦è§£æ±ºã—ã¾ã™ã€‚default Pathã“ã®ãƒ‘スã«å¯¾ã—ã¦ãƒ‘スを解決ã—ã¦ã‹ã‚‰ã€è¿½åŠ ã®ãƒ‘スを繰り返ã—解決ã—ã¾ã™ã€‚default PathresolveSibling(String other) 指定ã•れãŸãƒ‘ス文å—列をPathã«å¤‰æ›ã—ã¦ã‹ã‚‰ã€resolveSiblingãƒ¡ã‚½ãƒƒãƒ‰ã§æŒ‡å®šã•れãŸã¨ãŠã‚Šã®æ–¹æ³•ã§ã€ã“ã®ãƒ‘スã®è¦ªãƒ‘スã«å¯¾ã—ã¦è§£æ±ºã—ã¾ã™ã€‚default PathresolveSibling(Path other) 指定ã•れãŸãƒ‘スをã“ã®ãƒ‘スã®è¦ªãƒ‘スã«å¯¾ã—ã¦è§£æ±ºã—ã¾ã™ã€‚default booleanstartsWith(String other) ã“ã®ãƒ‘スãŒã€startsWith(Path)ãƒ¡ã‚½ãƒƒãƒ‰ã§æŒ‡å®šã•れãŸã¨ãŠã‚Šã®æ–¹æ³•ã§æŒ‡å®šã®ãƒ‘ス文å—列を変æ›ã™ã‚‹ã“ã¨ã§æ§‹ç¯‰ã•れるã€Pathã§å§‹ã¾ã‚‹ã‹ã©ã†ã‹ã‚’テストã—ã¾ã™ã€‚booleanstartsWith(Path other) ã“ã®ãƒ‘スãŒã€æŒ‡å®šã•れãŸãƒ‘スã§å§‹ã¾ã‚‹ã‹ã©ã†ã‹ã‚’テストã—ã¾ã™ã€‚subpath(int beginIndex, int endIndex) ã“ã®ãƒ‘スã®åå‰è¦ç´ ã®ã‚µãƒ–シーケンスã§ã‚る相対Pathã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ‘スã®çµ¶å¯¾ãƒ‘スを表ã™Pathオブジェクトを返ã—ã¾ã™ã€‚default FiletoFile()ã“ã®ãƒ‘スを表ã™Fileオブジェクトを返ã—ã¾ã™ã€‚toRealPath(LinkOption... options) æ—¢å˜ã®ãƒ•ァイルã®å®Ÿéš›ã®ãƒ‘スを返ã—ã¾ã™ã€‚toString()ã“ã®ãƒ‘ã‚¹ã®æ–‡å—列表ç¾ã‚’è¿”ã—ã¾ã™ã€‚toUri()ã“ã®ãƒ‘スを表ã™URIã‚’è¿”ã—ã¾ã™ã€‚インタフェースjava.lang.Iterableã§å®£è¨€ã•れãŸãƒ¡ã‚½ãƒƒãƒ‰
forEach, spliterator
-
メソッドã®è©³ç´°
-
of
パス文å—列ã€ã¾ãŸã¯çµåˆæ™‚ã«ãƒ‘ス文å—列を形æˆã™ã‚‹æ–‡å—列ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‚’変æ›ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€Pathã‚’è¿”ã—ã¾ã™ã€‚moreã«è¦ç´ ãŒæŒ‡å®šã•れã¦ã„ãªã„å ´åˆã¯ã€firstパラメータã®å€¤ã¯å¤‰æ›ã™ã‚‹ãƒ‘ス文å—列ã§ã™ã€‚moreã§1ã¤ä»¥ä¸Šã®è¦ç´ ãŒæŒ‡å®šã•れã¦ã„ã‚‹å ´åˆã€ç©ºã§ãªã„æ–‡å—列(firstã‚’å«ã‚€)ã¯ã€åå‰è¦ç´ ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã§ã‚ã‚‹ã¨ã¿ãªã•れã€ãƒ‘ス文å—列を形æˆã™ã‚‹ãŸã‚ã«çµåˆã•れã¾ã™ã€‚ æ–‡å—列ã®çµåˆæ–¹æ³•ã®è©³ç´°ã¯ãƒ—ãƒãƒã‚¤ãƒ€å›ºæœ‰ã§ã™ãŒã€é€šå¸¸ã¯åå‰åŒºåˆ‡ã‚Šæ–‡å—を区切り文å—ã¨ã—ã¦ä½¿ç”¨ã—ã¦çµåˆã•れã¾ã™ã€‚ ãŸã¨ãˆã°ã€åå‰åŒºåˆ‡ã‚Šæ–‡å—ãŒ"/"ã§getPath("/foo","bar","gus")ãŒå‘¼ã³å‡ºã•れãŸå ´åˆã€ãƒ‘ス文å—列"/foo/bar/gus"ã¯Pathã«å¤‰æ›ã•れã¾ã™ã€‚firstãŒç©ºã®æ–‡å—列ã§moreã«ç©ºã§ãªã„æ–‡å—列ãŒå«ã¾ã‚Œãªã„å ´åˆã¯ã€ç©ºã®ãƒ‘スを示ã™PathãŒè¿”ã•れã¾ã™ã€‚Pathã‚’å–å¾—ã™ã‚‹ã«ã¯ã€ãƒ‡ãƒ•ォルトã®FileSystemã®getPathメソッドを呼ã³å‡ºã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯éžå¸¸ã«ä¾¿åˆ©ã§ã™ãŒã€ãã®ä½¿ç”¨ã¯ãƒ‡ãƒ•ォルトã®
FileSystemã¸ã®æƒ³å®šã•れãŸå‚ç…§ã‚’æ„味ã—ã€å‘¼å‡ºã—å…ƒã®ã‚³ãƒ¼ãƒ‰ã®æœ‰ç”¨æ€§ã‚’é™å®šã™ã‚‹ã‚‚ã®ã§ã‚ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。 ã—ãŸãŒã£ã¦ã€æŸ”軟性ã®ã‚ã‚‹å†åˆ©ç”¨ã‚’目的ã¨ã—ãŸãƒ©ã‚¤ãƒ–ラリ・コードã§ã¯ä½¿ç”¨ã—ãªã„よã†ã«ã—ã¦ãã ã•ã„。 ã“れã«ä»£ã‚ã‚‹ã‚ˆã‚ŠæŸ”è»Ÿãªæ–¹æ³•ã¯ã€æ¬¡ã®ã‚ˆã†ã«æ—¢å˜ã®Pathインスタンスをアンカーã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ã“ã¨ã§ã™ã€‚Path dir = ... Path path = dir.resolve("file");- パラメータ:
first- パス文å—列ã¾ãŸã¯ãƒ‘ス文å—åˆ—ã®æœ€åˆã®éƒ¨åˆ†more- çµåˆã—ã¦ãƒ‘ス文å—列を形æˆã™ã‚‹ãŸã‚ã®è¿½åŠ æ–‡å—列- 戻り値:
- çµæžœã®
Path - スãƒãƒ¼:
InvalidPathException- パス文å—列をPathã«å¤‰æ›ã§ããªã„å ´åˆ- å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 11
- é–¢é€£é …ç›®:
-
of
URIを変æ›ã™ã‚‹ã“ã¨ã«ã‚ˆã£ã¦Pathã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€
インストールã•れã¦ã„るプãƒãƒã‚¤ãƒ€ã‚’å復ã—ã¦ã€æŒ‡å®šã•れãŸURIã®URIスã‚ーãƒã§è˜åˆ¥ã•れるプãƒãƒã‚¤ãƒ€ã‚’検索ã—ã¾ã™ã€‚ URIスã‚ームã¯å¤§æ–‡å—å°æ–‡å—ã«é–¢ä¿‚ãªã比較ã•れã¾ã™ã€‚ プãƒãƒã‚¤ãƒ€ãŒè¦‹ã¤ã‹ã£ãŸå ´åˆã¯ã€ãã®getPathメソッドãŒå‘¼ã³å‡ºã•れã¦URIãŒå¤‰æ›ã•れã¾ã™ã€‚「fileã€ã¨ã„ã†URIスã‚ームã§è˜åˆ¥ã•れるデフォルト・プãƒãƒã‚¤ãƒ€ã®å ´åˆã€æŒ‡å®šã•れãŸURIã«ã¯ç©ºã§ãªã„パス・コンãƒãƒ¼ãƒãƒ³ãƒˆã¨ã€æœªå®šç¾©ã®ã‚¯ã‚¨ãƒªãƒ¼ãŠã‚ˆã³ãƒ•ラグメント・コンãƒãƒ¼ãƒãƒ³ãƒˆãŒå«ã¾ã‚Œã¾ã™ã€‚ 機関コンãƒãƒ¼ãƒãƒ³ãƒˆãŒå˜åœ¨ã™ã‚‹ã‹ã©ã†ã‹ã¯ã€ãƒ—ラットフォームã«å›ºæœ‰ã®ã‚‚ã®ã§ã™ã€‚ è¿”ã•れる
Pathã¯defaultã®ãƒ•ァイル・システムã«é–¢é€£ä»˜ã‘られã¾ã™ã€‚デフォルト・プãƒãƒã‚¤ãƒ€ã¯åŒæ§˜ã®ãƒ©ã‚¦ãƒ³ãƒ‰ãƒ»ãƒˆãƒªãƒƒãƒ—ã®ä¿è¨¼ã‚’
Fileã‚¯ãƒ©ã‚¹ã«æä¾›ã—ã¾ã™ã€‚PathpãŒæŒ‡å®šã•れãŸå ´åˆã¯ã€æ¬¡ãŒä¿è¨¼ã•れã¾ã™ã€‚
å…ƒã®Path.of(p.toUri()).equals(p.toAbsolutePath())Pathã€URIãŠã‚ˆã³æ–°ã—ã„PathãŒã™ã¹ã¦åŒã˜Java仮想マシンã§(ãŠãらãç•°ãªã‚‹å‘¼ã³å‡ºã—)ã«ä½œæˆã•れã¾ã™ã€‚ ã»ã‹ã®ãƒ—ãƒãƒã‚¤ãƒ€ãŒä¿è¨¼ã‚’行ã†ã‹ã©ã†ã‹ã¯ãƒ—ãƒãƒã‚¤ãƒ€ã«ã‚ˆã£ã¦ç•°ãªã‚‹ãŸã‚ã€æœªæŒ‡å®šã§ã™ã€‚- パラメータ:
uri- 変æ›å¯¾è±¡ã®URI- 戻り値:
- çµæžœã®
Path - スãƒãƒ¼:
IllegalArgumentException-uriパラメータã®å‰ææ¡ä»¶ãŒæº€ãŸã•れã¦ã„ãªã„å ´åˆã€‚ URIã®å½¢å¼ã¯ãƒ—ãƒãƒã‚¤ãƒ€ã«å›ºæœ‰ã®ã‚‚ã®ã§ã™ã€‚FileSystemNotFoundException- URIã«ã‚ˆã£ã¦è˜åˆ¥ã•れるファイル・システムãŒå˜åœ¨ã›ãšã€è‡ªå‹•çš„ã«ä½œæˆã™ã‚‹ã“ã¨ã‚‚ã§ããªã„å ´åˆã€ã¾ãŸã¯URIスã‚ーム・コンãƒãƒ¼ãƒãƒ³ãƒˆã«ã‚ˆã£ã¦è˜åˆ¥ã•れるプãƒãƒã‚¤ãƒ€ãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„ãªã„å ´åˆ- å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 11
-
getFileSystem
FileSystem getFileSystem()ã“ã®ã‚ªãƒ–ジェクトを作æˆã—ãŸãƒ•ァイル・システムを返ã—ã¾ã™ã€‚- 戻り値:
- ã“ã®ã‚ªãƒ–ジェクトを作æˆã—ãŸãƒ•ァイル・システãƒ
-
isAbsolute
boolean isAbsolute()ã“ã®ãƒ‘スãŒçµ¶å¯¾ã‹ã©ã†ã‹ã‚’通知ã—ã¾ã™ã€‚絶対パスã¯å®Œå…¨ã§ã‚りã€ãƒ•ァイルを見ã¤ã‘ã‚‹ãŸã‚ã«ã»ã‹ã®ãƒ‘ã‚¹æƒ…å ±ã¨çµ„ã¿åˆã‚ã›ã‚‹å¿…è¦ã¯ã‚りã¾ã›ã‚“。
- 戻り値:
- ã“ã®ãƒ‘スãŒçµ¶å¯¾ã§ã‚ã‚‹å ´åˆã«ã®ã¿
true
-
getRoot
Path getRoot()ã“ã®ãƒ‘スã®ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã‚’Pathオブジェクトã¨ã—ã¦è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ‘スãŒãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã‚’æŒãŸãªã„å ´åˆã¯nullã‚’è¿”ã—ã¾ã™ã€‚- 戻り値:
- ã“ã®ãƒ‘スã®ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã‚’表ã™ãƒ‘スã€ã¾ãŸã¯
null
-
getFileName
Path getFileName()ã“ã®ãƒ‘スãŒç¤ºã™ãƒ•ァイルã¾ãŸã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®åå‰ã‚’Pathオブジェクトã¨ã—ã¦è¿”ã—ã¾ã™ã€‚ ã“ã®ãƒ•ァイルåã¯ã€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªéšŽå±¤ã®ãƒ«ãƒ¼ãƒˆã‹ã‚‰ã‚‚ã£ã¨ã‚‚é ã„è¦ç´ ã§ã™ã€‚- 戻り値:
- ファイルã¾ãŸã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®åå‰ã‚’表ã™ãƒ‘ス。ã“ã®ãƒ‘スã«è¦ç´ ãŒå«ã¾ã‚Œã¦ã„ãªã„å ´åˆã¯
null
-
getParent
Path getParent()親ã®ãƒ‘スを返ã—ã¾ã™ã€‚ã“ã®ãƒ‘スãŒè¦ªã‚’æŒãŸãªã„å ´åˆã¯nullã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ‘ス・オブジェクトã®è¦ªã¯ã€ã“ã®ãƒ‘スã®ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆ(å˜åœ¨ã™ã‚‹å ´åˆ)ã¨ãƒ‘ス内ã®å„è¦ç´ (ディレクトリ階層ã®ãƒ«ãƒ¼ãƒˆã‹ã‚‰ã‚‚ã£ã¨ã‚‚é ã„è¦ç´ を除ã)ã§æ§‹æˆã•れã¾ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ãƒ•ァイル・システムã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¾ã›ã‚“。ã¤ã¾ã‚Šã€ãƒ‘スã¾ãŸã¯ãã®è¦ªãŒå˜åœ¨ã—ãªã„å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ ã•らã«ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã§ã¯ä¸€éƒ¨ã®å®Ÿè£…ã§ä½¿ç”¨ã§ãる「.ã€ã‚„「..ã€ãªã©ã®ç‰¹æ®Šãªåå‰ã‚’削除ã—ã¾ã›ã‚“。 ãŸã¨ãˆã°ã€UNIXã§ã¯ã€ã€Œ
/a/b/cã€ã®è¦ªã¯ã€Œ/a/bã€ã§ã‚りã€ã€Œx/y/.ã€ã®è¦ªã¯ã€Œx/yã€ã§ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’normalizeメソッドã¨ã¨ã‚‚ã«ä½¿ç”¨ã™ã‚‹ã¨ã€ã‚·ã‚§ãƒ«ã®ã‚ˆã†ãªãƒŠãƒ“ゲーションãŒå¿…è¦ãªå ´åˆã«ã€å†—é•·ãªåå‰ã‚’削除ã§ãã¾ã™ã€‚ã“ã®ãƒ‘スã«è¤‡æ•°ã®è¦ç´ ãŒã‚りã€ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒãªã„å ´åˆã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯å¼ã®è©•価ã¨åŒç‰ã§ã™:
subpath(0, getNameCount()-1);- 戻り値:
- ãã®ãƒ‘スã®è¦ªã‚’表ã™ãƒ‘ス
-
getNameCount
int getNameCount()パス内ã®åå‰è¦ç´ ã®æ•°ã‚’è¿”ã—ã¾ã™ã€‚- 戻り値:
- パス内ã®è¦ç´ ã®æ•°ã€‚ã“ã®ãƒ‘スãŒãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã®ã¿ã‚’表ã™å ´åˆã¯
0
-
getName
Path getName(int index) ã“ã®ãƒ‘スã®åå‰è¦ç´ ã‚’Pathオブジェクトã¨ã—ã¦è¿”ã—ã¾ã™ã€‚indexパラメータã¯ã€è¿”ã•れるåå‰è¦ç´ ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã§ã™ã€‚ ディレクトリ階層ã®ãƒ«ãƒ¼ãƒˆã«ã‚‚ã£ã¨ã‚‚è¿‘ã„è¦ç´ ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã¯0ã«ãªã‚Šã¾ã™ã€‚ ãã®ãƒ«ãƒ¼ãƒˆã‹ã‚‰ã‚‚ã£ã¨ã‚‚é ã„è¦ç´ ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã¯ã€è¦ç´ æ•°-1ã«ãªã‚Šã¾ã™ã€‚- パラメータ:
index- è¦ç´ ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹- 戻り値:
- åå‰è¦ç´
- スãƒãƒ¼:
IllegalArgumentException-indexãŒè² ã®å€¤ã§ã‚ã‚‹å ´åˆã€indexãŒè¦ç´ æ•°ã¨ç‰ã—ã„ã‹ã€ãれよりも大ãã„å ´åˆã€ã¾ãŸã¯ã“ã®ãƒ‘スã«åå‰è¦ç´ ãŒå«ã¾ã‚Œã¦ã„ãªã„å ´åˆ
-
subpath
Path subpath(int beginIndex, int endIndex) ã“ã®ãƒ‘スã®åå‰è¦ç´ ã®ã‚µãƒ–シーケンスã§ã‚る相対Pathã‚’è¿”ã—ã¾ã™ã€‚beginIndexãŠã‚ˆã³endIndexパラメータã¯ã€åå‰è¦ç´ ã®ã‚µãƒ–シーケンスを指定ã—ã¾ã™ã€‚ ディレクトリ階層ã®ãƒ«ãƒ¼ãƒˆã«ã‚‚ã£ã¨ã‚‚è¿‘ã„åå‰ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã¯0ã«ãªã‚Šã¾ã™ã€‚ ãã®ãƒ«ãƒ¼ãƒˆã‹ã‚‰ã‚‚ã£ã¨ã‚‚é ã„åå‰ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã¯ã€è¦ç´ æ•°-1ã«ãªã‚Šã¾ã™ã€‚ è¿”ã•れるPathオブジェクトã«ã¯ã€beginIndexã‹ã‚‰å§‹ã¾ã‚Šã€ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹endIndex-1ã®è¦ç´ ã«ã¾ã§åŠã¶åå‰è¦ç´ ãŒå«ã¾ã‚Œã¾ã™ã€‚- パラメータ:
beginIndex- 最åˆã®è¦ç´ ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹(ã“れをå«ã‚€)endIndex- 最後ã®è¦ç´ ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹(ã“れをå«ã¾ãªã„)- 戻り値:
- ã“ã®
Pathã®åå‰è¦ç´ ã®ã‚µãƒ–シーケンスã§ã‚ã‚‹æ–°ã—ã„Pathオブジェクト - スãƒãƒ¼:
IllegalArgumentException-beginIndexãŒè² ã®å€¤ã§ã‚ã‚‹å ´åˆã€ã¾ãŸã¯ãれãŒè¦ç´ æ•°ã«ç‰ã—ã„ã‹ã€ãれよりも大ãã„å ´åˆã€‚endIndexãŒbeginIndexã«ç‰ã—ã„ã‹ã€ãれよりもå°ã•ã„å ´åˆã€ã¾ãŸã¯ãれãŒè¦ç´ 数よりも大ãã„å ´åˆã€‚
-
startsWith
boolean startsWith(Path other) ã“ã®ãƒ‘スãŒã€æŒ‡å®šã•れãŸãƒ‘スã§å§‹ã¾ã‚‹ã‹ã©ã†ã‹ã‚’テストã—ã¾ã™ã€‚ã“ã®ãƒ‘スã®ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒæŒ‡å®šã•れãŸãƒ‘スã®ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã§å§‹ã¾ã‚Šã€ã‹ã¤ã“ã®ãƒ‘ã‚¹ãŒæŒ‡å®šã•れãŸãƒ‘スã¨åŒã˜åå‰è¦ç´ ã§å§‹ã¾ã‚‹å ´åˆã€ã“ã®ãƒ‘ã‚¹ã¯æŒ‡å®šã•れãŸãƒ‘スã§å§‹ã¾ã‚Šã¾ã™ã€‚ 指定ã•れãŸãƒ‘スã«ã“ã®ãƒ‘スよりも多ãã®åå‰è¦ç´ ãŒå«ã¾ã‚Œã¦ã„ã‚‹å ´åˆã¯ã€
falseãŒè¿”ã•れã¾ã™ã€‚ã“ã®ãƒ‘スã®ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒæŒ‡å®šã•れãŸãƒ‘スã®ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã§å§‹ã¾ã‚‹ã‹ã©ã†ã‹ã¯ã€ãƒ•ァイル・システムã«å›ºæœ‰ã§ã™ã€‚ ã“ã®ãƒ‘スã«ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒå«ã¾ã‚Œã¦ãŠã‚‰ãšã€æŒ‡å®šã•れãŸãƒ‘スã«ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒå«ã¾ã‚Œã¦ã„ã‚‹å ´åˆã€ã“ã®ãƒ‘ã‚¹ã¯æŒ‡å®šã•れãŸãƒ‘スã§å§‹ã¾ã‚Šã¾ã›ã‚“。
指定ã•れãŸãƒ‘スãŒã“ã®ãƒ‘スã¨ã¯ç•°ãªã‚‹
FileSystemã«é–¢é€£ä»˜ã‘られã¦ã„ã‚‹å ´åˆã€falseãŒè¿”ã•れã¾ã™ã€‚- パラメータ:
other- 指定ã•れãŸãƒ‘ス- 戻り値:
- ã“ã®ãƒ‘スãŒã€æŒ‡å®šã•れãŸãƒ‘スã§å§‹ã¾ã‚‹å ´åˆ
trueã€ãれ以外ã®å ´åˆã¯false
-
startsWith
default boolean startsWith(String other) ã“ã®ãƒ‘スãŒã€startsWith(Path)ãƒ¡ã‚½ãƒƒãƒ‰ã§æŒ‡å®šã•れãŸã¨ãŠã‚Šã®æ–¹æ³•ã§æŒ‡å®šã®ãƒ‘ス文å—列を変æ›ã™ã‚‹ã“ã¨ã§æ§‹ç¯‰ã•れるã€Pathã§å§‹ã¾ã‚‹ã‹ã©ã†ã‹ã‚’テストã—ã¾ã™ã€‚ ãŸã¨ãˆã°ã€UNIXã§ã¯ã€ãƒ‘ス「foo/barã€ã¯ã€Œfooã€ãŠã‚ˆã³ã€Œfoo/barã€ã§å§‹ã¾ã‚Šã¾ã™ã€‚ ãれã¯ã€Œfã€ã¾ãŸã¯ã€Œfoã€ã§ã¯å§‹ã¾ã‚Šã¾ã›ã‚“。- 実装è¦ä»¶:
- デフォルトã®å®Ÿè£…ã¯ã€ã“ã®ãƒ‘スã¨åŒç‰ã§ã™:
startsWith(getFileSystem().getPath(other)); - パラメータ:
other- 指定ã•れãŸãƒ‘ス文å—列- 戻り値:
- ã“ã®ãƒ‘スãŒã€æŒ‡å®šã•れãŸãƒ‘スã§å§‹ã¾ã‚‹å ´åˆ
trueã€ãれ以外ã®å ´åˆã¯false - スãƒãƒ¼:
InvalidPathException- パス文å—列をPathã«å¤‰æ›ã§ããªã„å ´åˆã€‚
-
endsWith
boolean endsWith(Path other) ã“ã®ãƒ‘スãŒã€æŒ‡å®šã•れãŸãƒ‘スã§çµ‚ã‚ã‚‹ã‹ã©ã†ã‹ã‚’テストã—ã¾ã™ã€‚指定ã•れãŸãƒ‘スã«ã¯N個ã®è¦ç´ ãŒå«ã¾ã‚Œã¦ã„ã¦ã€ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒãªãã€ã“ã®ãƒ‘スã«ã¯N個以上ã®è¦ç´ ãŒå«ã¾ã‚Œã¦ã„ã‚‹å ´åˆã€ãƒ«ãƒ¼ãƒˆã‹ã‚‰ã‚‚ã£ã¨ã‚‚é ã„è¦ç´ ã§å§‹ã¾ã‚‹ã€å„ãƒ‘ã‚¹ã®æœ€å¾Œã®N個ã®è¦ç´ ãŒç‰ã—ã‘れã°ã€ã“ã®ãƒ‘ã‚¹ã¯æŒ‡å®šã•れãŸãƒ‘スã§çµ‚ã‚りã¾ã™ã€‚
指定ã•れãŸãƒ‘スã«ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒã‚ã‚‹å ´åˆã€ã“ã®ãƒ‘スã®ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒæŒ‡å®šã•れãŸãƒ‘スã®ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã§çµ‚ã‚りã€ä¸¡æ–¹ã®ãƒ‘スã®å¯¾å¿œã™ã‚‹è¦ç´ ãŒç‰ã—ã‘れã°ã€ã“ã®ãƒ‘ã‚¹ã¯æŒ‡å®šã•れãŸãƒ‘スã§çµ‚ã‚りã¾ã™ã€‚ ã“ã®ãƒ‘スã®ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒæŒ‡å®šã•れãŸãƒ‘スã®ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã§çµ‚ã‚ã‚‹ã‹ã©ã†ã‹ã¯ã€ãƒ•ァイル・システムã«å›ºæœ‰ã§ã™ã€‚ ã“ã®ãƒ‘スã«ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒå«ã¾ã‚Œãšã€æŒ‡å®šã•れãŸãƒ‘スã«ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒå«ã¾ã‚Œã¦ã„ã‚‹å ´åˆã€ã“ã®ãƒ‘ã‚¹ã¯æŒ‡å®šã•れãŸãƒ‘スã§çµ‚ã‚りã¾ã›ã‚“。
指定ã•れãŸãƒ‘スãŒã“ã®ãƒ‘スã¨ã¯ç•°ãªã‚‹
FileSystemã«é–¢é€£ä»˜ã‘られã¦ã„ã‚‹å ´åˆã€falseãŒè¿”ã•れã¾ã™ã€‚- パラメータ:
other- 指定ã•れãŸãƒ‘ス- 戻り値:
- ã“ã®ãƒ‘ã‚¹ãŒæŒ‡å®šã•れãŸãƒ‘スã§çµ‚ã‚ã‚‹å ´åˆã¯
trueã€ãれ以外ã®å ´åˆã¯false
-
endsWith
default boolean endsWith(String other) ã“ã®ãƒ‘スãŒã€endsWith(Path)ãƒ¡ã‚½ãƒƒãƒ‰ã§æŒ‡å®šã•れãŸã¨ãŠã‚Šã®æ–¹æ³•ã§æŒ‡å®šã®ãƒ‘ス文å—列を変æ›ã™ã‚‹ã“ã¨ã§æ§‹ç¯‰ã•れるã€Pathã§çµ‚ã‚ã‚‹ã‹ã©ã†ã‹ã‚’テストã—ã¾ã™ã€‚ ãŸã¨ãˆã°ã€UNIXã§ã¯ã€ãƒ‘ス「foo/barã€ã¯ã€Œfoo/barã€ãŠã‚ˆã³ã€Œbarã€ã§çµ‚ã‚りã¾ã™ã€‚ ãれã¯ã€Œrã€ã¾ãŸã¯ã€Œ/barã€ã§ã¯çµ‚ã‚りã¾ã›ã‚“。 末尾ã®åŒºåˆ‡ã‚Šæ–‡å—ã¯è€ƒæ…®ã•れãªã„ãŸã‚ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’Path"foo/bar"ã«å¯¾ã—ã¦String"bar/"ã§å‘¼ã³å‡ºã™ã¨ã€trueãŒè¿”ã•れã¾ã™ã€‚- 実装è¦ä»¶:
- デフォルトã®å®Ÿè£…ã¯ã€ã“ã®ãƒ‘スã¨åŒç‰ã§ã™:
endsWith(getFileSystem().getPath(other)); - パラメータ:
other- 指定ã•れãŸãƒ‘ス文å—列- 戻り値:
- ã“ã®ãƒ‘ã‚¹ãŒæŒ‡å®šã•れãŸãƒ‘スã§çµ‚ã‚ã‚‹å ´åˆã¯
trueã€ãれ以外ã®å ´åˆã¯false - スãƒãƒ¼:
InvalidPathException- パス文å—列をPathã«å¤‰æ›ã§ããªã„å ´åˆã€‚
-
normalize
Path normalize()ã“ã®ãƒ‘スã‹ã‚‰å†—é•·ãªåå‰è¦ç´ を削除ã—ãŸãƒ‘スを返ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®æ£ç¢ºãªå®šç¾©ã¯å®Ÿè£…ã«ä¾å˜ã—ã¾ã™ãŒã€é€šå¸¸ã€ãれã¯ã“ã®ãƒ‘ス(冗長ãªåå‰è¦ç´ ã‚’å«ã¾ãªã„パス)ã‹ã‚‰æ´¾ç”Ÿã—ã¦ã„ã¾ã™ã€‚ 多ãã®ãƒ•ァイル・システムã§ã¯ã€ã€Œ
.ã€ãŠã‚ˆã³ã€Œ..ã€ã¯ç¾åœ¨ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŠã‚ˆã³è¦ªãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’示ã™ãŸã‚ã«ä½¿ã‚れる特殊ãªåå‰ã§ã™ã€‚ ãã®ã‚ˆã†ãªãƒ•ァイル・システムã§ã¯ã€ã€Œ.ã€ã®ã‚ªã‚«ãƒ¬ãƒ³ã‚¹ã¯ã™ã¹ã¦å†—é•·ã¨ã¿ãªã•れã¾ã™ã€‚ 「..ã€ã®ç›´å‰ã«ã€Œ..ã€ä»¥å¤–ã®åå‰ãŒå˜åœ¨ã™ã‚‹å ´åˆã€ãã®ä¸¡æ–¹ã®åå‰ãŒå†—é•·ã¨ã¿ãªã•れã¾ã™(ãã®ã‚ˆã†ãªåå‰ã‚’è˜åˆ¥ã™ã‚‹ãƒ—ãƒã‚»ã‚¹ãŒè©²å½“ã—ãªããªã‚‹ã¾ã§ç¹°ã‚Šè¿”ã•れる)。ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ãƒ•ァイル・システムã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¾ã›ã‚“。ã¤ã¾ã‚Šã€ãã®ãƒ‘スã¯å˜åœ¨ã—ã¦ã„るファイルを検出ã—ãªã„å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ 「
..ã€ã¨ãれã«å…ˆè¡Œã™ã‚‹åå‰ã‚’パスã‹ã‚‰å‰Šé™¤ã™ã‚‹ã¨ã€å…ƒã®ãƒ‘スã¨ã¯ç•°ãªã‚‹ãƒ•ァイルを検出ã™ã‚‹ãƒ‘スãŒç”Ÿã˜ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ ã“れã¯ã€å…ˆè¡Œã™ã‚‹åå‰ãŒã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒ»ãƒªãƒ³ã‚¯ã®å ´åˆã«ç™ºç”Ÿã™ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚- 戻り値:
- çµæžœã®ãƒ‘スã¾ãŸã¯ã“ã®ãƒ‘スã«å†—é•·ãªåå‰è¦ç´ ãŒå«ã¾ã‚Œã¦ã„ãªã„å ´åˆã¯ãã®ãƒ‘ス。ã“ã®ãƒ‘スã«ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒãªãã€ã™ã¹ã¦ã®nameè¦ç´ ãŒå†—é•·ã§ã‚ã‚‹å ´åˆã¯ã€ç©ºã®ãƒ‘スãŒè¿”ã•れã¾ã™
- é–¢é€£é …ç›®:
-
resolve
指定ã•れãŸãƒ‘スをã“ã®ãƒ‘スã«å¯¾ã—ã¦è§£æ±ºã—ã¾ã™ã€‚otherパラメータãŒçµ¶å¯¾ãƒ‘スã§ã‚ã‚‹å ´åˆã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯æ™®é€šã«otherã‚’è¿”ã—ã¾ã™ã€‚otherãŒç©ºã®ãƒ‘スã§ã‚ã‚‹å ´åˆã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯æ™®é€šã«ã“ã®ãƒ‘スを返ã—ã¾ã™ã€‚ ãれ以外ã®å ´åˆã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã“ã®ãƒ‘スをディレクトリã¨ã¿ãªã—ã€æŒ‡å®šã•れãŸãƒ‘スをã“ã®ãƒ‘スã«å¯¾ã—ã¦è§£æ±ºã—ã¾ã™ã€‚ ã‚‚ã£ã¨ã‚‚å˜ç´”ãªã®ã¯ã€æŒ‡å®šã•れãŸãƒ‘スã«ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒãªã„å ´åˆã§ã™ã€‚ãã®å ´åˆã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯æŒ‡å®šã•れãŸãƒ‘スをã“ã®ãƒ‘スã«çµåˆã—ã€æŒ‡å®šã•れãŸãƒ‘スã§çµ‚ã‚ã‚‹ãƒ‘ã‚¹ã‚’çµæžœã¨ã—ã¦è¿”ã—ã¾ã™ã€‚ 指定ã•れãŸãƒ‘スã«ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒã‚ã‚‹å ´åˆã€è§£æ±ºã¯å®Ÿè£…ã«å¤§ããä¾å˜ã™ã‚‹ãŸã‚ã€æœªæŒ‡å®šã§ã™ã€‚- パラメータ:
other- ã“ã®ãƒ‘スã«å¯¾ã—ã¦è§£æ±ºã™ã‚‹ãƒ‘ス- 戻り値:
- çµæžœã®ãƒ‘ス
- é–¢é€£é …ç›®:
-
resolve
指定ã•れãŸãƒ‘ス文å—列をPathã«å¤‰æ›ã—ã¦ã‹ã‚‰ã€resolveãƒ¡ã‚½ãƒƒãƒ‰ã§æŒ‡å®šã•れãŸã¨ãŠã‚Šã®æ–¹æ³•ã§ã€ã“ã®Pathã«å¯¾ã—ã¦è§£æ±ºã—ã¾ã™ã€‚ ãŸã¨ãˆã°ã€åå‰åŒºåˆ‡ã‚Šæ–‡å—ãŒã€Œ/ã€ã§ã€ãƒ‘スãŒã€Œfoo/barã€ã‚’表ã™ã¨ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’パス文å—列「gusã€ã§å‘¼ã³å‡ºã™ã¨ã€çµæžœã¯Path"foo/bar/gus"ã¨ãªã‚Šã¾ã™ã€‚- 実装è¦ä»¶:
- デフォルトã®å®Ÿè£…ã¯ã€ã“ã®ãƒ‘スã¨åŒç‰ã§ã™:
resolve(getFileSystem().getPath(other)); - パラメータ:
other- ã“ã®ãƒ‘スã«å¯¾ã—ã¦è§£æ±ºã™ã‚‹ãƒ‘ス文å—列- 戻り値:
- çµæžœã®ãƒ‘ス
- スãƒãƒ¼:
InvalidPathException- パス文å—列をPathã«å¤‰æ›ã§ããªã„å ´åˆã€‚- é–¢é€£é …ç›®:
-
resolve
ã“ã®ãƒ‘スã«å¯¾ã—ã¦ãƒ‘スを解決ã—ã¦ã‹ã‚‰ã€è¿½åŠ ã®ãƒ‘スを繰り返ã—解決ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€
resolve(Path)をコールã™ã‚‹ã‹ã®ã‚ˆã†ã«ã€ã“ã®Pathã«å¯¾ã—ã¦firstを解決ã—ã¾ã™ã€‚moreã«1ã¤ä»¥ä¸Šã®è¦ç´ ãŒã‚ã‚‹å ´åˆã¯ã€çµæžœã«å¯¾ã—ã¦æœ€åˆã®è¦ç´ ãŒè§£æ±ºã•れã€å¾Œç¶šã®ã™ã¹ã¦ã®è¦ç´ ãŒå復的ã«è§£æ±ºã•れã¾ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€æœ€çµ‚変æ›ã®çµæžœã‚’è¿”ã—ã¾ã™ã€‚- 実装è¦ä»¶:
- デフォルトã®å®Ÿè£…ã¯ã€æ¬¡ã§å–å¾—ã—ãŸçµæžœã¨åŒç‰ã§ã™ã€‚
Path result = resolve(first); for (Path p : more) { result = result.resolve(p); } - パラメータ:
first- ã“ã®ãƒ‘スã«å¯¾ã—ã¦è§£æ±ºã™ã‚‹æœ€åˆã®ãƒ‘スmore- å復的ã«è§£æ±ºã™ã‚‹ãŸã‚ã®è¿½åŠ ã®ãƒ‘ス- 戻り値:
- çµæžœã®ãƒ‘ス
- å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 22
- é–¢é€£é …ç›®:
-
resolve
パス文å—列をパスã«å¤‰æ›ã—ã€ãã®ãƒ‘スをã“ã®ãƒ‘スã«å¯¾ã—ã¦è§£æ±ºã—ã¦ã‹ã‚‰ã€è¿½åŠ ã®ãƒ‘ス文å—列ã«å¯¾ã—ã¦åŒã˜ãƒ—ãƒã‚·ãƒ¼ã‚¸ãƒ£ã‚’繰り返ã—実行ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€
firstã‚’Pathã«å¤‰æ›ã—ã€resolve(String)をコールã™ã‚‹ã‹ã®ã‚ˆã†ã«ã€ã“ã®Pathã«å¯¾ã—ã¦ãã®Pathを解決ã—ã¾ã™ã€‚moreã«1ã¤ä»¥ä¸Šã®è¦ç´ ãŒã‚ã‚‹å ´åˆã€æœ€åˆã®è¦ç´ をパスã«å¤‰æ›ã—ã€ãã®ãƒ‘ã‚¹ã‚’çµæžœã«å¯¾ã—ã¦è§£æ±ºã—ã¦ã‹ã‚‰ã€å¾Œç¶šã®ã™ã¹ã¦ã®è¦ç´ ã‚’å復的ã«å¤‰æ›ã—ã¦è§£æ±ºã—ã¾ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€æœ€çµ‚変æ›ã®çµæžœã‚’è¿”ã—ã¾ã™ã€‚- 実装è¦ä»¶:
- デフォルトã®å®Ÿè£…ã¯ã€æ¬¡ã§å–å¾—ã—ãŸçµæžœã¨åŒç‰ã§ã™ã€‚
Path result = resolve(first); for (String s : more) { result = result.resolve(s); } - パラメータ:
first- パスã«å¤‰æ›ã—ã¦ã“ã®ãƒ‘スã«å¯¾ã—ã¦è§£æ±ºã™ã‚‹æœ€åˆã®ãƒ‘ス文å—列more- パスã«å復的ã«å¤‰æ›ã—ã¦è§£æ±ºã™ã‚‹è¿½åŠ ã®ãƒ‘ス文å—列- 戻り値:
- çµæžœã®ãƒ‘ス
- スãƒãƒ¼:
InvalidPathException- パス文å—列をパスã«å¤‰æ›ã§ããªã„å ´åˆã€‚- å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 22
- é–¢é€£é …ç›®:
-
resolveSibling
指定ã•れãŸãƒ‘スをã“ã®ãƒ‘スã®è¦ªãƒ‘スã«å¯¾ã—ã¦è§£æ±ºã—ã¾ã™ã€‚ ã“れã¯ã€ãƒ•ァイルåを別ã®ãƒ•ァイルåã«ç½®ãæ›ãˆã‚‹å¿…è¦ãŒã‚ã‚‹å ´åˆã«å½¹ç«‹ã¡ã¾ã™ã€‚ ãŸã¨ãˆã°ã€åå‰ã‚»ãƒ‘レータãŒ"/"ã§ã€ãƒ‘スãŒ"dir1/dir2/foo"を表ã™å ´åˆã€Path"bar"ã§ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’呼ã³å‡ºã™ã¨ã€Path"dir1/dir2/bar"ã«ãªã‚Šã¾ã™ã€‚ ã“ã®ãƒ‘スã«è¦ªãƒ‘スãŒå«ã¾ã‚Œã¦ã„ãªã„å ´åˆã€ã¾ãŸã¯otherãŒçµ¶å¯¾ãƒ‘スã§ã‚ã‚‹å ´åˆã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯otherã‚’è¿”ã—ã¾ã™ã€‚otherãŒç©ºã®ãƒ‘スã§ã‚ã‚‹å ´åˆã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã“ã®ãƒ‘スã®è¦ªã‚’è¿”ã—ã€ã“ã®ãƒ‘スã«è¦ªãŒãªã„å ´åˆã¯ã€ç©ºã®ãƒ‘スを返ã—ã¾ã™ã€‚- 実装è¦ä»¶:
- デフォルトã®å®Ÿè£…ã¯ã€ã“ã®ãƒ‘スã¨åŒç‰ã§ã™:
(getParent() == null) ? other : getParent().resolve(other);other == null以外ã®å ´åˆã¯ã€NullPointerExceptionãŒã‚¹ãƒãƒ¼ã•れã¾ã™ã€‚ - パラメータ:
other- ã“ã®ãƒ‘スã®è¦ªã«å¯¾ã—ã¦è§£æ±ºã™ã‚‹ãƒ‘ス- 戻り値:
- çµæžœã®ãƒ‘ス
- é–¢é€£é …ç›®:
-
resolveSibling
指定ã•れãŸãƒ‘ス文å—列をPathã«å¤‰æ›ã—ã¦ã‹ã‚‰ã€resolveSiblingãƒ¡ã‚½ãƒƒãƒ‰ã§æŒ‡å®šã•れãŸã¨ãŠã‚Šã®æ–¹æ³•ã§ã€ã“ã®ãƒ‘スã®è¦ªãƒ‘スã«å¯¾ã—ã¦è§£æ±ºã—ã¾ã™ã€‚- 実装è¦ä»¶:
- デフォルトã®å®Ÿè£…ã¯ã€ã“ã®ãƒ‘スã¨åŒç‰ã§ã™:
resolveSibling(getFileSystem().getPath(other)); - パラメータ:
other- ã“ã®ãƒ‘スã®è¦ªã«å¯¾ã—ã¦è§£æ±ºã™ã‚‹ãƒ‘ス文å—列- 戻り値:
- çµæžœã®ãƒ‘ス
- スãƒãƒ¼:
InvalidPathException- パス文å—列をPathã«å¤‰æ›ã§ããªã„å ´åˆã€‚- é–¢é€£é …ç›®:
-
relativize
ã“ã®ãƒ‘ã‚¹ã¨æŒ‡å®šã•れãŸãƒ‘スã¨ã®é–“ã®ç›¸å¯¾ãƒ‘スを構築ã—ã¾ã™ã€‚相対化ã¯ã€
解決ã®é€†ã§ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ã“ã®ãƒ‘スã«å¯¾ã—ã¦è§£æ±ºã™ã‚‹ã¨æŒ‡å®šã•れãŸãƒ‘スã¨åŒã˜ãƒ•ァイルを検出ã™ã‚‹ãƒ‘スを生æˆã™ã‚‹ã€ç›¸å¯¾ãƒ‘スを構築ã—よã†ã¨ã—ã¾ã™ã€‚ ãŸã¨ãˆã°ã€UNIXã§ã¯ã€ã“ã®ãƒ‘スãŒ"/a/b"ã§ã€æŒ‡å®šã•れãŸãƒ‘スãŒ"/a/b/c/d"ã§ã‚ã‚‹å ´åˆã€çµæžœã¨ãªã‚‹ç›¸å¯¾ãƒ‘スã¯"c/d"ã«ãªã‚Šã¾ã™ã€‚ ã“ã®ãƒ‘ã‚¹ã¨æŒ‡å®šã•れãŸãƒ‘スã«ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒãªã„å ´åˆã¯ã€ç›¸å¯¾ãƒ‘スを構築ã§ãã¾ã™ã€‚ ãれらã®ãƒ‘スã®ã©ã¡ã‚‰ã‹ä¸€æ–¹ã ã‘ã«ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒã‚ã‚‹å ´åˆã¯ã€ç›¸å¯¾ãƒ‘スを構築ã§ãã¾ã›ã‚“。 両方ã®ãƒ‘スã«ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒã‚ã‚‹å ´åˆã€ç›¸å¯¾ãƒ‘スを構築ã§ãã‚‹ã‹ã©ã†ã‹ã¯å®Ÿè£…ã«ä¾å˜ã—ã¾ã™ã€‚ ã“ã®ãƒ‘ã‚¹ã¨æŒ‡å®šã•れãŸãƒ‘スãŒç‰ã—ã„å ´åˆã¯ã€ç©ºã®ãƒ‘スãŒè¿”ã•れã¾ã™ã€‚2ã¤ã®
æ£è¦åŒ–ã•れãŸãƒ‘スpã¨qã«ã¤ã„ã¦(ã“ã“ã§ã®qã«ã¯ãƒ«ãƒ¼ãƒˆãƒ»ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãŒã‚りã¾ã›ã‚“)ã€æ¬¡ãŒæˆã‚Šç«‹ã¡ã¾ã™ã€‚p
.relativize(p.resolve(q)).equals(q)シンボリック・リンクãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã‚‹å ´åˆã€ã“ã®ãƒ‘スã«å¯¾ã—ã¦è§£æ±ºã™ã‚‹ã¨ã€çµæžœã¨ãªã‚‹ãƒ‘スãŒã€
otherã¨åŒã˜ãƒ•ã‚¡ã‚¤ãƒ«ã®æ¤œå‡ºã«ä½¿ç”¨ã§ãるパスを生æˆã™ã‚‹ã‹ã©ã†ã‹ã¯å®Ÿè£…ã«ä¾å˜ã—ã¾ã™ã€‚ ãŸã¨ãˆã°ã€ã“ã®ãƒ‘スãŒ"/a/b"ã§ã€æŒ‡å®šã•れãŸãƒ‘スãŒ"/a/x"ã§ã‚ã‚‹å ´åˆã€çµæžœã¨ãªã‚‹ç›¸å¯¾ãƒ‘スã¯"../x"ã«ãªã‚Šã¾ã™ã€‚"b"ãŒã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒ»ãƒªãƒ³ã‚¯ã®å ´åˆã€"a/b/../x"ãŒ"/a/x"ã¨åŒã˜ãƒ•ァイルを検出ã™ã‚‹ã‹ã©ã†ã‹ã¯å®Ÿè£…ã«ä¾å˜ã—ã¾ã™ã€‚- パラメータ:
other- ã“ã®ãƒ‘スã«å¯¾ã—ã¦ç›¸å¯¾åŒ–ã™ã‚‹ãƒ‘ス- 戻り値:
- çµæžœã¨ãªã‚‹ç›¸å¯¾ãƒ‘ス。両方ã®ãƒ‘スãŒç‰ã—ã„å ´åˆã¯ç©ºã®ãƒ‘ス
- スãƒãƒ¼:
IllegalArgumentException-otherãŒã“ã®ãƒ‘スã«å¯¾ã—ã¦ç›¸å¯¾åŒ–ã§ãã‚‹Pathã§ãªã„å ´åˆ
-
toUri
URI toUri()ã“ã®ãƒ‘スを表ã™URIã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ãƒ—ãƒãƒã‚¤ãƒ€ã‚’è˜åˆ¥ã™ã‚‹URIスã‚ームã«ç‰ã—ã„
スã‚ーãƒã‚’使用ã—ã¦ã€çµ¶å¯¾URIを構築ã—ã¾ã™ã€‚ スã‚ーム固有ã®éƒ¨åˆ†ã®æ£ç¢ºãªå½¢å¼ã¯ãƒ—ãƒãƒã‚¤ãƒ€ã«å¤§ããä¾å˜ã—ã¾ã™ã€‚デフォルト・プãƒãƒã‚¤ãƒ€ã®å ´åˆã€URIã¯çµ¶å¯¾ã§ã‚ã‚‹
パス・コンãƒãƒ¼ãƒãƒ³ãƒˆã‚’å«ã‚€éšŽå±¤URIã§ã™ã€‚ クエリーãŠã‚ˆã³ãƒ•ラグメント・コンãƒãƒ¼ãƒãƒ³ãƒˆã¯æœªå®šç¾©ã§ã™ã€‚ 機関コンãƒãƒ¼ãƒãƒ³ãƒˆãŒå®šç¾©ã•れã¦ã„ã‚‹ã‹ã©ã†ã‹ã¯ã€å®Ÿè£…ã«ä¾å˜ã—ã¾ã™ã€‚URIãŒjava.io.Fileã®æ§‹ç¯‰ã«ä½¿ç”¨ã§ãã‚‹ã¨ã„ã†ä¿è¨¼ã¯ã‚りã¾ã›ã‚“。 特ã«ã€ã“ã®ãƒ‘ã‚¹ãŒæ±Žç”¨å‘½åè¦å‰‡(UNC)パスを表ã™å ´åˆã¯ã€UNCサーãƒãƒ¼åã‚’çµæžœã¨ãªã‚‹URIã®æ©Ÿé–¢ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã§ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã§ãã¾ã™ã€‚ デフォルト・プãƒãƒã‚¤ãƒ€ã§ã€ãƒ•ァイルãŒå˜åœ¨ã—ã€ãã®ãƒ•ァイルãŒãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ã‚ã‚‹ã¨åˆ¤å®šã§ãã‚‹å ´åˆã€çµæžœã¨ãªã‚‹URIã¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã§çµ‚ã‚りã¾ã™ã€‚デフォルト・プãƒãƒã‚¤ãƒ€ã¯åŒæ§˜ã®ãƒ©ã‚¦ãƒ³ãƒ‰ãƒ»ãƒˆãƒªãƒƒãƒ—ã®ä¿è¨¼ã‚’
Fileã‚¯ãƒ©ã‚¹ã«æä¾›ã—ã¾ã™ã€‚PathpãŒæŒ‡å®šã•れãŸå ´åˆã¯ã€æ¬¡ãŒä¿è¨¼ã•れã¾ã™ã€‚
å…ƒã®Path.of(p.toUri()).equals(p.toAbsolutePath())Pathã€URIãŠã‚ˆã³æ–°ã—ã„PathãŒã™ã¹ã¦åŒã˜Java仮想マシンã§(ãŠãらãç•°ãªã‚‹å‘¼ã³å‡ºã—)ã«ä½œæˆã•れã¾ã™ã€‚ ã»ã‹ã®ãƒ—ãƒãƒã‚¤ãƒ€ãŒä¿è¨¼ã‚’行ã†ã‹ã©ã†ã‹ã¯ãƒ—ãƒãƒã‚¤ãƒ€ã«ã‚ˆã£ã¦ç•°ãªã‚‹ãŸã‚ã€æœªæŒ‡å®šã§ã™ã€‚ファイルã®å†…容ã«ãƒ•ァイル・システムã¨ã—ã¦ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãŸã‚ã®ãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ã‚·ã‚¹ãƒ†ãƒ ãŒæ§‹ç¯‰ã•ã‚Œã‚‹å ´åˆã€è¿”ã•れるURIãŒãã®ãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ã‚·ã‚¹ãƒ†ãƒ å†…ã®æŒ‡å®šã•れãŸãƒ‘スを表ã™ã‹ã€ã¾ãŸã¯åŒ…å«ã™ã‚‹ãƒ•ァイル・システムã®URIをエンコードã™ã‚‹è¤‡åˆ URIを表ã™ã‹ã¯ã€å®Ÿè£…ã«ã‚ˆã£ã¦å¤§ããç•°ãªã‚Šã¾ã™ã€‚ ã“ã®ãƒªãƒªãƒ¼ã‚¹ã§ã¯ã€è¤‡åˆURIã®å½¢å¼ã¯å®šç¾©ã•れã¦ã„ã¾ã›ã‚“。ãã®ã‚ˆã†ãªã‚¹ã‚ームã¯ã€å°†æ¥ã®ãƒªãƒªãƒ¼ã‚¹ã§è¿½åŠ ã•れるå¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚
- 戻り値:
- ã“ã®ãƒ‘スを表ã™URI
- スãƒãƒ¼:
IOError- 絶対パスã®å–å¾—ä¸ã«å…¥å‡ºåŠ›ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆã€ã¾ãŸã¯ãƒ•ァイルã®å†…容ã«ãƒ•ァイル・システムã¨ã—ã¦ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãŸã‚ã®ãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ã‚·ã‚¹ãƒ†ãƒ ãŒæ§‹ç¯‰ã•れã€åŒ…å«ã™ã‚‹ãƒ•ァイル・システムã®URIã‚’å–å¾—ã§ããªã„å ´åˆ
-
toAbsolutePath
Path toAbsolutePath()ã“ã®ãƒ‘スã®çµ¶å¯¾ãƒ‘スを表ã™Pathオブジェクトを返ã—ã¾ã™ã€‚ã“ã®ãƒ‘スãŒã™ã§ã«
絶対ã§ã‚ã‚‹å ´åˆã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯å˜ã«ã“ã®ãƒ‘スを返ã™ã ã‘ã§ã™ã€‚ ãれ以外ã®å ´åˆã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ãã®ãƒ‘スを実装ã«ä¾å˜ã—ãŸæ–¹æ³•ã§(通常ã¯ãã®ãƒ‘スをファイル・システムã®ãƒ‡ãƒ•ォルト・ディレクトリã«å¯¾ã—ã¦è§£æ±ºã™ã‚‹ã“ã¨ã«ã‚ˆã£ã¦)解決ã—ã¾ã™ã€‚ 実装ã«ã‚ˆã£ã¦ã¯ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ãƒ•ァイル・システムã«ã‚¢ã‚¯ã‚»ã‚¹ã§ããªã„å ´åˆã«å…¥å‡ºåŠ›ã‚¨ãƒ©ãƒ¼ã‚’ã‚¹ãƒãƒ¼ã™ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚- 戻り値:
- 絶対パスを表ã™
Pathオブジェクト - スãƒãƒ¼:
IOError- 入出力エラーãŒç™ºç”Ÿã—ãŸå ´åˆ
-
toRealPath
Path toRealPath( LinkOption... options) throws IOExceptionæ—¢å˜ã®ãƒ•ァイルã®å®Ÿéš›ã®ãƒ‘スを返ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®æ£ç¢ºãªå®šç¾©ã¯å®Ÿè£…ã«ä¾å˜ã—ã¾ã™ãŒã€é€šå¸¸ã€ãれã¯ã“ã®ãƒ‘ス(ã“ã®ãƒ‘スã¨
åŒã˜ãƒ•ァイルを検出ã™ã‚‹ãŒã€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŠã‚ˆã³ãƒ•ァイルã®å®Ÿéš›ã®åå‰ã‚’表ã™åå‰è¦ç´ ã‚’å«ã‚€çµ¶å¯¾ãƒ‘ス)ã‹ã‚‰æ´¾ç”Ÿã—ã¦ã„ã¾ã™ã€‚ ãŸã¨ãˆã°ã€ãƒ•ァイル・システムã«å¯¾ã™ã‚‹ãƒ•ァイルåã®æ¯”較ã§å¤§æ–‡å—ã¨å°æ–‡å—ãŒåŒºåˆ¥ã•れãªã„å ´åˆã€åå‰è¦ç´ ã¯å¤§æ–‡å—ã¨å°æ–‡å—ã®é•ã„を実際ã«åˆã‚ã›ã¦åå‰ã‚’表ã—ã¾ã™ã€‚ ã¾ãŸã€çµæžœã¨ãªã‚‹ãƒ‘スã‹ã‚‰ã¯å†—é•·ãªåå‰è¦ç´ ãŒå‰Šé™¤ã•れã¦ã„ã¾ã™ã€‚ã“ã®ãƒ‘スãŒç›¸å¯¾ã§ã‚ã‚‹å ´åˆã¯ã€
toAbsolutePathメソッドを呼ã³å‡ºã—ãŸå ´åˆã¨åŒæ§˜ã«ã€æœ€åˆã«ãã®çµ¶å¯¾ãƒ‘スãŒå–å¾—ã•れã¾ã™ã€‚optionsé…列を使用ã™ã‚‹ã¨ã€ã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒ»ãƒªãƒ³ã‚¯ã®å‡¦ç†æ–¹æ³•を指定ã§ãã¾ã™ã€‚ デフォルトã§ã¯ã€ã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒ»ãƒªãƒ³ã‚¯ã¯ãã®æœ€çµ‚ターゲットã«è§£æ±ºã•れã¾ã™ã€‚ オプションNOFOLLOW_LINKSãŒå˜åœ¨ã™ã‚‹å ´åˆã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒ»ãƒªãƒ³ã‚¯ã‚’解決ã—ã¾ã›ã‚“。 一部ã®å®Ÿè£…ã§ã¯ã€ã€Œ..ã€ãªã©ã®ç‰¹æ®Šãªåå‰ã‚’使用ã—ã¦è¦ªãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’å‚ç…§ã§ãã¾ã™ã€‚ 実際ã®ãƒ‘スをå–å¾—ã—ã¦ã„ã‚‹ã¨ãã«ã€ã€Œ..ã€(ã¾ãŸåŒç‰ã®ã‚‚ã®)ã®ç›´å‰ã«ã€Œ..ã€ä»¥å¤–ã®åå‰ãŒå˜åœ¨ã™ã‚‹å ´åˆã¯ã€å®Ÿè£…ã«ã‚ˆã£ã¦é€šå¸¸ã€ä¸¡æ–¹ã®åå‰ãŒå‰Šé™¤ã•れã¾ã™ã€‚ シンボリック・リンクを解決ã›ãšã€å‰ã®åå‰ãŒã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒ»ãƒªãƒ³ã‚¯ã§ã‚ã‚‹å ´åˆã€ãã®åå‰ã¯ã€çµæžœã®ãƒ‘スãŒã“ã®ãƒ‘スã¨åŒã˜ãƒ•ァイルを検出ã™ã‚‹ã“ã¨ãŒä¿è¨¼ã•れã¦ã„ã‚‹å ´åˆã«ã®ã¿å‰Šé™¤ã•れã¾ã™ã€‚- パラメータ:
options- シンボリック・リンクã®å‡¦ç†æ–¹æ³•を示ã™ã‚ªãƒ—ション- 戻り値:
- ã“ã®ã‚ªãƒ–ジェクトã«ã‚ˆã£ã¦æ¤œå‡ºã•れるファイルã®å®Ÿéš›ã®ãƒ‘スを表ã™çµ¶å¯¾ãƒ‘ス
- スãƒãƒ¼:
IOException- ファイルãŒå˜åœ¨ã—ãªã„ã‹ã€å…¥å‡ºåŠ›ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆ
-
toFile
default File toFile()ã“ã®ãƒ‘スを表ã™Fileオブジェクトを返ã—ã¾ã™ã€‚ ã“ã®PathãŒãƒ‡ãƒ•ォルト・プãƒãƒã‚¤ãƒ€ã«é–¢é€£ä»˜ã‘られã¦ã„ã‚‹å ´åˆã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ã“ã®ãƒ‘スã®String表ç¾ã§æ§‹ç¯‰ã•れãŸFileオブジェクトを返ã™ã“ã¨ã¨åŒç‰ã§ã™ã€‚ã“ã®ãƒ‘スãŒ
FiletoPathメソッドを呼ã³å‡ºã™ã“ã¨ã«ã‚ˆã£ã¦ä½œæˆã•れãŸå ´åˆã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã«ã‚ˆã£ã¦è¿”ã•れãŸFileオブジェクトãŒå…ƒã®Fileã«å¯¾ã—ã¦equalã§ã‚ã‚‹ã¨ã„ã†ä¿è¨¼ã¯ã‚りã¾ã›ã‚“。- 実装è¦ä»¶:
- デフォルトã®å®Ÿè£…ã¯ã€ã“ã®ãƒ‘スã¨åŒç‰ã§ã™:
ã“ã®
new File(toString());Pathを作æˆã—ãŸFileSystemãŒãƒ‡ãƒ•ォルトã®ãƒ•ァイル・システムã§ã‚ã‚‹å ´åˆã¯ã€UnsupportedOperationExceptionãŒã‚¹ãƒãƒ¼ã•れã¾ã™ã€‚ - 戻り値:
- ã“ã®ãƒ‘スを表ã™
Fileオブジェクト - スãƒãƒ¼:
UnsupportedOperationException- ã“ã®PathãŒãƒ‡ãƒ•ォルト・プãƒãƒã‚¤ãƒ€ã«é–¢é€£ä»˜ã‘られã¦ã„ãªã„å ´åˆ
-
register
WatchKey register( WatchService watcher, WatchEvent.Kind<?>[] events, WatchEvent.Modifier... modifiers) throws IOExceptionã“ã®ãƒ‘ã‚¹ã§æ¤œå‡ºã•れãŸãƒ•ァイルを監視サービスã«ç™»éŒ²ã—ã¾ã™ã€‚ã“ã®ãƒªãƒªãƒ¼ã‚¹ã§ã¯ã€ã“ã®ãƒ‘スã¯å˜åœ¨ã—ã¦ã„るディレクトリを検出ã—ã¾ã™ã€‚ ãã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¯ã€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªå†…ã®ã‚¨ãƒ³ãƒˆãƒªã‚’監視ã§ãるよã†ã«ç›£è¦–サービスã«ç™»éŒ²ã•れã¾ã™ã€‚
eventsパラメータã¯ç™»éŒ²ã™ã‚‹ã‚¤ãƒ™ãƒ³ãƒˆã§ã‚ã‚Šã€æ¬¡ã®ã‚¤ãƒ™ãƒ³ãƒˆã‚’å«ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ENTRY_CREATE- エントリãŒãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªå†…ã«ä½œæˆã¾ãŸã¯ç§»å‹•ã•れãŸENTRY_DELETE- エントリãŒãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‹ã‚‰å‰Šé™¤ã¾ãŸã¯å–り出ã•れãŸENTRY_MODIFY- ディレクトリ内ã®ã‚¨ãƒ³ãƒˆãƒªãŒå¤‰æ›´ã•れãŸ
ã“れらã®ã‚¤ãƒ™ãƒ³ãƒˆã®
コンテã‚ストã¯ã€ã“ã®ãƒ‘ã‚¹ã§æ¤œå‡ºã•れるディレクトリã¨ã€ä½œæˆã€å‰Šé™¤ã€ã¾ãŸã¯å¤‰æ›´ã•れるディレクトリ・エントリを検出ã™ã‚‹ãƒ‘スã¨ã®é–“ã®ç›¸å¯¾ãƒ‘スã«ãªã‚Šã¾ã™ã€‚イベントã®ã‚»ãƒƒãƒˆã«ã¯ã€åˆ—挙型ã®
StandardWatchEventKindsã§å®šç¾©ã•れãªã„実装固有ã®è¿½åŠ ã®ã‚¤ãƒ™ãƒ³ãƒˆã‚’å«ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚modifiersパラメータã¯ã€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®ç™»éŒ²æ–¹æ³•を修飾ã™ã‚‹ä¿®é£¾åを指定ã—ã¾ã™ã€‚ ã“ã®ãƒªãƒªãƒ¼ã‚¹ã§ã¯ã€æ¨™æº–修飾åã¯å®šç¾©ã•れã¦ã„ã¾ã›ã‚“。 ãれã«ã¯ã€å®Ÿè£…固有ã®ä¿®é£¾åã‚’å«ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ファイルãŒã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒ»ãƒªãƒ³ã‚¯ã«ã‚ˆã£ã¦ç›£è¦–サービスã«ç™»éŒ²ã•ã‚Œã‚‹å ´åˆã€ç™»éŒ²å¾Œã‚‚監視ãŒãã®ã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒ»ãƒªãƒ³ã‚¯ã®å˜åœ¨ã«å·¦å³ã•れ続ã‘ã‚‹ã‹ã©ã†ã‹ã¯å®Ÿè£…ã«å›ºæœ‰ã§ã™ã€‚
- 定義:
registerã€ã‚¤ãƒ³ã‚¿ãƒ•ェースWatchable- パラメータ:
watcher- ã“ã®ã‚ªãƒ–ジェクトを登録ã™ã‚‹ç›£è¦–サービスevents- ã“ã®ã‚ªãƒ–ジェクトを登録ã™ã‚‹ã¹ãイベントmodifiers- オブジェクトã®ç™»éŒ²æ–¹æ³•を修飾ã™ã‚‹ä¿®é£¾å(ã‚ã‚‹å ´åˆ)- 戻り値:
- 指定ã•れãŸç›£è¦–サービスã¸ã®ã“ã®ã‚ªãƒ–ジェクトã®ç™»éŒ²ã‚’表ã™ã‚ー
- スãƒãƒ¼:
UnsupportedOperationException- 未サãƒãƒ¼ãƒˆã®ã‚¤ãƒ™ãƒ³ãƒˆã¾ãŸã¯ä¿®é£¾åãŒæŒ‡å®šã•れãŸå ´åˆIllegalArgumentException- イベントã¾ãŸã¯ä¿®é£¾åã®ç„¡åйãªçµ„ã¿åˆã‚ã›ãŒæŒ‡å®šã•れãŸå ´åˆClosedWatchServiceException- 監視サービスãŒé–‰ã˜ã‚‰ã‚Œã¦ã„ã‚‹å ´åˆNotDirectoryException- ディレクトリ内ã®ã‚¨ãƒ³ãƒˆãƒªã‚’監視ã™ã‚‹ã‚ˆã†ã«ãƒ•ァイルãŒç™»éŒ²ã•れã¦ã„ã‚‹ãŒã€ãã®ãƒ•ァイルãŒãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ã¯ãªã„å ´åˆ(オプションã®å›ºæœ‰ä¾‹å¤–)IOException- 入出力エラーãŒç™ºç”Ÿã—ãŸå ´åˆ
-
register
default WatchKey register(WatchService watcher, WatchEvent.Kind<?>... events) throws IOException ã“ã®ãƒ‘ã‚¹ã§æ¤œå‡ºã•れãŸãƒ•ァイルを監視サービスã«ç™»éŒ²ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰å‘¼å‡ºã—ã®å‹•作ã¯ã€æ¬¡ã®å‘¼å‡ºã—ã®å‹•作ã¨ã¾ã£ãŸãåŒä¸€ã§ã™ã€‚
register(watcher, events, new WatchEvent.Modifier[0]);使用例: エントリã®ä½œæˆã€å‰Šé™¤ã€ãŠã‚ˆã³å¤‰æ›´ã‚¤ãƒ™ãƒ³ãƒˆç”¨ã«ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’登録ã™ã‚‹ã¨ã—ã¾ã™ã€‚
Path dir = ... WatchService watcher = ... WatchKey key = dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);- 定義:
registerã€ã‚¤ãƒ³ã‚¿ãƒ•ェースWatchable- 実装è¦ä»¶:
- デフォルトã®å®Ÿè£…ã¯ã€ã“ã®ãƒ‘スã¨åŒç‰ã§ã™:
register(watcher, events, new WatchEvent.Modifier[0]); - パラメータ:
watcher- ã“ã®ã‚ªãƒ–ジェクトを登録ã™ã‚‹ç›£è¦–サービスevents- ã“ã®ã‚ªãƒ–ジェクトを登録ã™ã‚‹ã¹ãイベント- 戻り値:
- 指定ã•れãŸç›£è¦–サービスã¸ã®ã“ã®ã‚ªãƒ–ジェクトã®ç™»éŒ²ã‚’表ã™ã‚ー
- スãƒãƒ¼:
UnsupportedOperationException- サãƒãƒ¼ãƒˆã•れã¦ã„ãªã„ã‚¤ãƒ™ãƒ³ãƒˆãŒæŒ‡å®šã•れãŸå ´åˆIllegalArgumentException- イベントã®ç„¡åйãªçµ„ã¿åˆã‚ã›ãŒæŒ‡å®šã•れãŸå ´åˆClosedWatchServiceException- 監視サービスãŒé–‰ã˜ã‚‰ã‚Œã¦ã„ã‚‹å ´åˆNotDirectoryException- ディレクトリ内ã®ã‚¨ãƒ³ãƒˆãƒªã‚’監視ã™ã‚‹ã‚ˆã†ã«ãƒ•ァイルãŒç™»éŒ²ã•れã¦ã„ã‚‹ãŒã€ãã®ãƒ•ァイルãŒãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ã¯ãªã„å ´åˆ(オプションã®å›ºæœ‰ä¾‹å¤–)IOException- 入出力エラーãŒç™ºç”Ÿã—ãŸå ´åˆ
-
iterator
ã“ã®ãƒ‘スã®åå‰è¦ç´ を処ç†ã™ã‚‹ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã‚’è¿”ã—ã¾ã™ã€‚イテレータã«ã‚ˆã£ã¦è¿”ã•れる最åˆã®è¦ç´ ã¯ã€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªéšŽå±¤ã®ãƒ«ãƒ¼ãƒˆã«ã‚‚ã£ã¨ã‚‚è¿‘ã„åå‰è¦ç´ を表ã—ã€2番目ã®è¦ç´ ã¯æ¬¡ã«ã‚‚ã£ã¨ã‚‚è¿‘ã„åå‰è¦ç´ ã¨ãªã‚Šã€ä»¥é™ã‚‚åŒæ§˜ã§ã™ã€‚ è¿”ã•れる最後ã®è¦ç´ ã¯ã€ã“ã®ãƒ‘スã§ç¤ºã•れるファイルã¾ãŸã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®åå‰ã§ã™ã€‚ イテレータã§ã¯ã€
ルート・コンãƒãƒ¼ãƒãƒ³ãƒˆ(å˜åœ¨ã™ã‚‹å ´åˆ)ã¯è¿”ã•れã¾ã›ã‚“。- 定義:
iteratorã€ã‚¤ãƒ³ã‚¿ãƒ•ェースIterable<Path>- 実装è¦ä»¶:
- デフォルト実装ã¯ã€
Iterator<Path>ã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ‘スã§ã¯ã€getName(index)ã«ã‚ˆã£ã¦è¿”ã•れるPath(indexã®ç¯„囲ã¯ã‚¼ãƒã‹ã‚‰getNameCount() - 1ã¾ã§ (包å«))をトラãƒãƒ¼ã‚¹ã—ã¾ã™ã€‚ - 戻り値:
- ã“ã®ãƒ‘スã®åå‰è¦ç´ を処ç†ã™ã‚‹ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿
-
compareTo
int compareTo(Path other) 2ã¤ã®æŠ½è±¡ãƒ‘ã‚¹ã‚’èªžå½™çš„ã«æ¯”較ã—ã¾ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã§å®šç¾©ã•ã‚Œã‚‹é †åºã¯ãƒ—ãƒãƒã‚¤ãƒ€ã«å›ºæœ‰ã§ã‚りã€ãƒ‡ãƒ•ォルト・プãƒãƒã‚¤ãƒ€ã®å ´åˆã¯ãƒ—ラットフォームã«å›ºæœ‰ã§ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ãƒ•ァイル・システムã«ã‚¢ã‚¯ã‚»ã‚¹ã—ãªã„ãŸã‚ã€ãƒ•ァイルãŒå˜åœ¨ã—ã¦ã„ãªãã¦ã‚‚ã‹ã¾ã„ã¾ã›ã‚“。ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’使ã£ã¦ç•°ãªã‚‹ãƒ•ァイル・システム・プãƒãƒã‚¤ãƒ€ã«é–¢é€£ä»˜ã‘られã¦ã„るパスを比較ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。
- 定義:
compareToã€ã‚¤ãƒ³ã‚¿ãƒ•ェースComparable<Path>- パラメータ:
other- ã“ã®ãƒ‘ã‚¹ã¨æ¯”較ã•れるパス。- 戻り値:
- 引数ãŒã“ã®ãƒ‘スã¨
ç‰ã—ã„å ´åˆã¯ã‚¼ãƒã€‚ã“ã®ãƒ‘スãŒå¼•数より語彙的ã«å°ã•ã„å ´åˆã¯è² ã®å€¤ã€‚ã“ã®ãƒ‘スãŒå¼•数より語彙的ã«å¤§ãã„å ´åˆã¯æ£ã®å€¤ - スãƒãƒ¼:
ClassCastException- パスãŒç•°ãªã‚‹ãƒ—ãƒãƒã‚¤ãƒ€ã«é–¢é€£ä»˜ã‘られã¦ã„ã‚‹å ´åˆ
-
equals
boolean equals(Object other) ã“ã®ãƒ‘ã‚¹ãŒæŒ‡å®šã•れãŸã‚ªãƒ–ジェクトã¨ç‰ã—ã„ã‹ã©ã†ã‹ã‚’テストã—ã¾ã™ã€‚指定ã•れãŸã‚ªãƒ–ジェクトãŒPathã§ãªã„ã‹ã€åˆ¥ã®
FileSystemã«é–¢é€£ä»˜ã‘られãŸPathã§ã‚ã‚‹å ´åˆã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯falseã‚’è¿”ã—ã¾ã™ã€‚2ã¤ã®ãƒ‘スãŒç‰ã—ã„ã‹ã©ã†ã‹ã¯ã€ãƒ•ァイル・システムã®å®Ÿè£…ã«ã‚ˆã£ã¦ç•°ãªã‚Šã¾ã™ã€‚ ãれらã®ãƒ‘スã¯å¤§æ–‡å—å°æ–‡å—ã®åŒºåˆ¥ãªã比較ã•ã‚Œã‚‹å ´åˆã‚‚ã€å¤§æ–‡å—å°æ–‡å—を区別ã—ã¦æ¯”較ã•ã‚Œã‚‹å ´åˆã‚‚ã‚りã¾ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ãƒ•ァイル・システムã«ã‚¢ã‚¯ã‚»ã‚¹ã—ãªã„ãŸã‚ã€ãƒ•ァイルãŒå˜åœ¨ã—ã¦ã„ãªãã¦ã‚‚ã‹ã¾ã„ã¾ã›ã‚“。 å¿…è¦ãªå ´åˆã¯ã€
isSameFileメソッドを使用ã—ã¦2ã¤ã®ãƒ‘スãŒåŒã˜ãƒ•ァイルを検出ã™ã‚‹ã‹ã©ã†ã‹ã‚’確èªã§ãã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯
Object.equalsãƒ¡ã‚½ãƒƒãƒ‰ã®æ±Žç”¨è¦ç´„を満ãŸã—ã¾ã™ã€‚ -
hashCode
int hashCode()ã“ã®ãƒ‘スã®ãƒãƒƒã‚·ãƒ¥ãƒ»ã‚³ãƒ¼ãƒ‰ã‚’計算ã—ã¾ã™ã€‚ãƒãƒƒã‚·ãƒ¥ãƒ»ã‚³ãƒ¼ãƒ‰ã¯ã€ãƒ‘スã®ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã«åŸºã¥ã„ã¦ãŠã‚Šã€
Object.hashCodeãƒ¡ã‚½ãƒƒãƒ‰ã®æ±Žç”¨è¦ç´„を満ãŸã—ã¾ã™ã€‚ -
toString
String toString()ã“ã®ãƒ‘ã‚¹ã®æ–‡å—列表ç¾ã‚’è¿”ã—ã¾ã™ã€‚getPathメソッドを使用ã—ã¦ãƒ‘ス文å—列を変æ›ã™ã‚‹ã“ã¨ã§ã“ã®ãƒ‘スãŒä½œæˆã•れãŸå ´åˆã¯ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã«ã‚ˆã£ã¦è¿”ã•れるパス文å—列ãŒãƒ‘スã®ä½œæˆã«ä½¿ç”¨ã•れãŸå…ƒã®Stringã¨ç•°ãªã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚è¿”ã•れるパス文å—列ã¯ã€ãƒ‡ãƒ•ォルトã®åå‰
区切り文å—を使用ã—ã¦ãƒ‘スã®åå‰ã‚’区切りã¾ã™ã€‚
-