- すべてのスーパー・インタフェース:
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
-
メソッドのサマリー
修飾子と型メソッド説明int
2つの抽象パスを語彙的に比較します。default boolean
このパスが、endsWith(Path)
メソッドで指定されたとおりの方法で指定のパス文字列を変換することで構築される、Path
で終わるかどうかをテストします。boolean
このパスが、指定されたパスで終わるかどうかをテストします。boolean
このパスが指定されたオブジェクトと等しいかどうかをテストします。このパスが示すファイルまたはディレクトリの名前をPath
オブジェクトとして返します。このオブジェクトを作成したファイル・システムを返します。getName
(int index) このパスの名前要素をPath
オブジェクトとして返します。int
パス内の名前要素の数を返します。親のパスを返します。このパスが親を持たない場合はnull
を返します。getRoot()
このパスのルート・コンポーネントをPath
オブジェクトとして返します。このパスがルート・コンポーネントを持たない場合はnull
を返します。int
hashCode()
このパスのハッシュ・コードを計算します。boolean
このパスが絶対かどうかを通知します。iterator()
このパスの名前要素を処理するイテレータを返します。このパスから冗長な名前要素を削除したパスを返します。static Path
パス文字列、または結合時にパス文字列を形成する文字列のシーケンスを変換することにより、Path
を返します。static Path
URIを変換することによってPath
を返します。default WatchKey
register
(WatchService watcher, WatchEvent.Kind<?>... events) このパスで検出されたファイルを監視サービスに登録します。register
(WatchService watcher, WatchEvent.Kind<?>[] events, WatchEvent.Modifier... modifiers) このパスで検出されたファイルを監視サービスに登録します。relativize
(Path other) このパスと指定されたパスとの間の相対パスを構築します。default Path
指定されたパス文字列をPath
に変換してから、resolve
メソッドで指定されたとおりの方法で、このPath
に対して解決します。指定されたパスをこのパスに対して解決します。default Path
resolveSibling
(String other) 指定されたパス文字列をPath
に変換してから、resolveSibling
メソッドで指定されたとおりの方法で、このパスの親
パスに対して解決します。default Path
resolveSibling
(Path other) 指定されたパスをこのパスの親
パスに対して解決します。default boolean
startsWith
(String other) このパスが、startsWith(Path)
メソッドで指定されたとおりの方法で指定のパス文字列を変換することで構築される、Path
で始まるかどうかをテストします。boolean
startsWith
(Path other) このパスが、指定されたパスで始まるかどうかをテストします。subpath
(int beginIndex, int endIndex) このパスの名前要素のサブシーケンスである相対Path
を返します。このパスの絶対パスを表すPath
オブジェクトを返します。default File
toFile()
このパスを表す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
クラスに提供します。Path
pが指定された場合は、次が保証されます。
オリジナルのPath.of(
p.
toUri
()).equals(
p.
toAbsolutePath
())
Path
、URI
、および新しいPath
がすべて、同じJava仮想マシンの(おそらく異なる呼び出し)で作成されている限りです。 ほかのプロバイダが保証を行うかどうかはプロバイダによって異なるため、未指定です。- パラメータ:
uri
- 変換対象のURI- 戻り値:
- 結果の
Path
- 例外:
IllegalArgumentException
-uri
パラメータの前提条件が満たされていない場合。 URIの形式はプロバイダに固有のものです。FileSystemNotFoundException
- URIによって識別されるファイル・システムが存在せず、自動的に作成することもできない場合、またはURIスキーム・コンポーネントによって識別されるプロバイダがインストールされていない場合SecurityException
- セキュリティ・マネージャがインストールされ、それがファイル・システムへの未指定のアクセス権を拒否する場合- 導入されたバージョン:
- 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に変換できない場合。- 関連項目:
-
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
クラスに提供します。Path
pが指定された場合は、次が保証されます。Path.of
(
p.toUri()).equals(
p.
toAbsolutePath
())
Path
、URI
、および新しいPath
がすべて、同じJava仮想マシンの(おそらく異なる呼び出し)で作成されている限りです。 ほかのプロバイダが保証を行うかどうかはプロバイダによって異なるため、未指定です。ファイルの内容にファイル・システムとしてアクセスするためのファイル・システムが構築される場合、返されるURIがそのファイル・システム内の指定されたパスを表すか、または包含するファイル・システムのURIをエンコードする複合 URIを表すかは、実装によって大きく異なります。 このリリースでは、複合URIの形式は定義されていません。そのようなスキームは、将来のリリースで追加される可能性があります。
- 戻り値:
- このパスを表すURI
- 例外:
IOError
- 絶対パスの取得中に入出力エラーが発生した場合、またはファイルの内容にファイル・システムとしてアクセスするためのファイル・システムが構築され、包含するファイル・システムのURIを取得できない場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのtoAbsolutePath
メソッドがセキュリティ例外をスローする場合。
-
toAbsolutePath
Path toAbsolutePath()このパスの絶対パスを表すPath
オブジェクトを返します。このパスがすでに
絶対
である場合、このメソッドは単にこのパスを返すだけです。 それ以外の場合、このメソッドはそのパスを実装に依存した方法で(通常はそのパスをファイル・システムのデフォルト・ディレクトリに対して解決することによって)解決します。 実装によっては、このメソッドはファイル・システムにアクセスできない場合に入出力エラーをスローすることがあります。- 戻り値:
- 絶対パスを表す
Path
オブジェクト - 例外:
IOError
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、このパスが絶対でない場合、セキュリティ・マネージャのcheckPropertyAccess
メソッドが呼び出されてシステム・プロパティuser.dir
へのアクセスがチェックされる
-
toRealPath
既存のファイルの実際のパスを返します。このメソッドの正確な定義は実装に依存しますが、通常、それはこのパス(このパスと
同じ
ファイルを検出するが、ディレクトリおよびファイルの実際の名前を表す名前要素を含む絶対
パス)から派生しています。 たとえば、ファイル・システムに対するファイル名の比較で大文字と小文字が区別されない場合、名前要素は大文字と小文字の違いを実際に合わせて名前を表します。 また、結果となるパスからは冗長な名前要素が削除されています。このパスが相対である場合は、
toAbsolutePath
メソッドを呼び出した場合と同様に、最初にその絶対パスが取得されます。options
配列を使用すると、シンボリック・リンクの処理方法を指定できます。 デフォルトでは、シンボリック・リンクはその最終ターゲットに解決されます。 オプションNOFOLLOW_LINKS
が存在する場合、このメソッドはシンボリック・リンクを解決しません。 一部の実装では、「..
」などの特殊な名前を使用して親ディレクトリを参照できます。 実際のパスを取得しているときに、「..
」(また同等のもの)の直前に「..
」以外の名前が存在する場合は、実装によって通常、両方の名前が削除されます。 シンボリック・リンクを解決していないときに、先行する名前がシンボリック・リンクである場合は、結果となるパスがこのパスと同じファイルを検出することが保証されていれば、それらの名前は削除されます。- パラメータ:
options
- シンボリック・リンクの処理方法を示すオプション- 戻り値:
- このオブジェクトによって検出されるファイルの実際のパスを表す絶対パス
- 例外:
IOException
- ファイルが存在しないか、入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、そのcheckRead
メソッドが呼び出されてファイルへの読取りアクセスがチェックされ、このパスが絶対でない場合は、そのcheckPropertyAccess
メソッドが呼び出されてシステム・プロパティuser.dir
へのアクセスがチェックされる
-
toFile
default File toFile()このパスを表すFile
オブジェクトを返します。 このPath
がデフォルト・プロバイダに関連付けられている場合、このメソッドは、このパスのString
表現で構築されたFile
オブジェクトを返すことと同等です。このパスが
File
toPath
メソッドを呼び出すことによって作成された場合、このメソッドによって返された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
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkRead
メソッドが呼び出されてファイルへの読取りアクセスがチェックされます。
-
register
default WatchKey register(WatchService watcher, WatchEvent.Kind<?>... events) throws IOException このパスで検出されたファイルを監視サービスに登録します。このメソッド呼出しの動作は、次の呼出しの動作とまったく同一です。
watchable.
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
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkRead
メソッドが呼び出されてファイルへの読取りアクセスがチェックされます。
-
iterator
このパスの名前要素を処理するイテレータを返します。イテレータによって返される最初の要素は、ディレクトリ階層のルートにもっとも近い名前要素を表し、2番目の要素は次にもっとも近い名前要素となり、以降も同様です。 返される最後の要素は、このパスで示されるファイルまたはディレクトリの名前です。 イテレータでは、
ルート
・コンポーネント(存在する場合)は返されません。 -
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()
-