- すべてのスーパー・インタフェース:
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 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スキーム・コンポーネントによって識別されるプロバイダがインストールされていない場合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このパスが、指定されたパスで始まる場合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クラスに提供します。Pathpが指定された場合は、次が保証されます。
オリジナルの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オブジェクトを返すことと同等です。このパスが
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- 入出力エラーが発生した場合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()
-