モジュール java.base
パッケージ java.nio.file

インタフェースPath

すべてのスーパー・インタフェース:
Comparable<Path>, Iterable<Path>, Watchable

public interface Path
extends Comparable<Path>, Iterable<Path>, Watchable
ファイル・システム内のファイルを特定するために使用可能なオブジェクトです。 通常、それはシステムに依存するファイル・パスを表します。

Pathは、特別な区切り文字で区切られた一連のディレクトリ名およびファイル名の要素で構成される階層構造のパスを表します。 ルート・コンポーネント (ファイル・システム階層を識別するもの)が存在する場合もあります。 ディレクトリ階層のルートからもっとも遠い名前要素は、ファイルまたはディレクトリの名前です。 その他の名前要素はディレクトリ名です。 Pathは、ルート、ルートと一連の名前、または単に1つまたは複数の名前要素のみを表すことができます。 Pathは、1つの空の名前要素のみで構成される場合は空のパスとみなされます。 空のパスを使用してファイルにアクセスすることは、ファイル・システムのデフォルト・ディレクトリにアクセスすることと同じです。 Pathは、パス・コンポーネントまたはその名前要素のサブシーケンスにアクセスするためのgetFileNamegetParentgetRoot、および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メソッドは、PathString表現から Fileを構築するのに役立ちます。

並行性

このインタフェースの実装は不変であり、複数の並行スレッドで安全に使用できます。

導入されたバージョン:
1.7
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    int compareTo​(Path other)
    2つの抽象パスを語彙的に比較します。
    default boolean endsWith​(String other)
    このパスが、endsWith(Path)メソッドで指定されたとおりの方法で指定のパス文字列を変換することで構築される、Pathで終わるかどうかをテストします。
    boolean endsWith​(Path other)
    このパスが、指定されたパスで終わるかどうかをテストします。
    boolean equals​(Object other)
    このパスが指定されたオブジェクトと等しいかどうかをテストします。
    Path getFileName()
    このパスが示すファイルまたはディレクトリの名前をPathオブジェクトとして返します。
    FileSystem getFileSystem()
    このオブジェクトを作成したファイル・システムを返します。
    Path getName​(int index)
    このパスの名前要素をPathオブジェクトとして返します。
    int getNameCount()
    パス内の名前要素の数を返します。
    Path getParent()
    親のパスを返します。このパスが親を持たない場合はnullを返します。
    Path getRoot()
    このパスのルート・コンポーネントをPathオブジェクトとして返します。このパスがルート・コンポーネントを持たない場合はnullを返します。
    int hashCode()
    このパスのハッシュ・コードを計算します。
    boolean isAbsolute()
    このパスが絶対かどうかを通知します。
    default Iterator<Path> iterator()
    このパスの名前要素を処理するイテレータを返します。
    Path normalize()
    このパスから冗長な名前要素を削除したパスを返します。
    static Path of​(String first, String... more)
    パス文字列、または結合時にパス文字列を形成する文字列のシーケンスを変換することにより、Pathを返します。
    static Path of​(URI uri)
    URIを変換することによってPathを返します。
    default WatchKey register​(WatchService watcher, WatchEvent.Kind<?>... events)
    このパスで検出されたファイルを監視サービスに登録します。
    WatchKey register​(WatchService watcher, WatchEvent.Kind<?>[] events, WatchEvent.Modifier... modifiers)
    このパスで検出されたファイルを監視サービスに登録します。
    Path relativize​(Path other)
    このパスと指定されたパスとの間の相対パスを構築します。
    default Path resolve​(String other)
    指定されたパス文字列をPathに変換してから、resolveメソッドで指定されたとおりの方法で、このPathに対して解決します。
    Path resolve​(Path other)
    指定されたパスをこのパスに対して解決します。
    default Path resolveSibling​(String other)
    指定されたパス文字列をPathに変換してから、resolveSiblingメソッドで指定されたとおりの方法で、このパスのパスに対して解決します。
    default Path resolveSibling​(Path other)
    指定されたパスをこのパスのパスに対して解決します。
    default boolean startsWith​(String other)
    このパスが、startsWith(Path)メソッドで指定されたとおりの方法で指定のパス文字列を変換することで構築される、Pathで始まるかどうかをテストします。
    boolean startsWith​(Path other)
    このパスが、指定されたパスで始まるかどうかをテストします。
    Path subpath​(int beginIndex, int endIndex)
    このパスの名前要素のサブシーケンスである相対Pathを返します。
    Path toAbsolutePath()
    このパスの絶対パスを表すPathオブジェクトを返します。
    default File toFile()
    このパスを表すFileオブジェクトを返します。
    Path toRealPath​(LinkOption... options)
    既存のファイルの実際のパスを返します。
    String toString()
    このパスの文字列表現を返します。
    URI toUri()
    このパスを表すURIを返します。

    インタフェース java.lang.Iterableで宣言されたメソッド

    forEach, spliterator
  • メソッドの詳細

    • of

      static Path of​(String first, String... more)
      パス文字列、または結合時にパス文字列を形成する文字列のシーケンスを変換することにより、Pathを返します。 moreに要素が指定されていない場合は、firstパラメータの値は変換するパス文字列です。 moreで1つ以上の要素が指定されている場合、空でない文字列(firstを含む)は、名前要素のシーケンスであるとみなされ、パス文字列を形成するために結合されます。 文字列の結合方法の詳細はプロバイダ固有ですが、通常は名前区切り文字を区切り文字として使用して結合されます。 たとえば、名前区切り文字が"/"でgetPath("/foo","bar","gus")が呼び出された場合、パス文字列"/foo/bar/gus"Pathに変換されます。 firstが空の文字列でmoreに空でない文字列が含まれない場合は、空のパスを示すPathが返されます。

      Pathを取得するには、デフォルトのFileSystemgetPathメソッドを呼び出します。

      このメソッドは非常に便利ですが、その使用はデフォルトのFileSystemへの想定された参照を意味し、呼出し元のコードの有用性を限定するものであることに注意してください。 したがって、柔軟性のある再利用を目的としたライブラリ・コードでは使用しないようにしてください。 これに代わるより柔軟な方法は、次のように既存のPathインスタンスをアンカーとして使用することです。

      
           Path dir = ...
           Path path = dir.resolve("file");
       

      パラメータ:
      first - パス文字列またはパス文字列の最初の部分
      more - 結合してパス文字列を形成するための追加文字列
      戻り値:
      結果のPath
      例外:
      InvalidPathException - パス文字列をPathに変換できない場合
      導入されたバージョン:
      11
      関連項目:
      FileSystem.getPath(java.lang.String, java.lang.String...)
    • of

      static Path of​(URI uri)
      URIを変換することによってPathを返します。

      このメソッドは、インストールされているプロバイダを反復して、指定されたURIのURI スキームで識別されるプロバイダを検索します。 URIスキームは大文字小文字に関係なく比較されます。 プロバイダが見つかった場合は、そのgetPathメソッドが呼び出されてURIが変換されます。

      「file」というURIスキームで識別されるデフォルト・プロバイダの場合、指定されたURIには空でないパス・コンポーネントと、未定義のクエリーおよびフラグメント・コンポーネントが含まれます。 機関コンポーネントが存在するかどうかは、プラットフォームに固有のものです。 返されるPathdefaultのファイル・システムに関連付けられます。

      デフォルト・プロバイダは同様のラウンド・トリップの保証をFileクラスに提供します。 Path pが指定された場合は、次が保証されます。

      Path.of(p.toUri()).equals( p.toAbsolutePath())
      オリジナルのPathURI、および新しい 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が負の値である場合、またはそれが要素数に等しいか、それよりも大きい場合。 endIndexbeginIndexに等しいか、それよりも小さい場合、またはそれが要素数よりも大きい場合。
    • 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要素が冗長である場合は、空のパスが返されます
      関連項目:
      getParent(), toRealPath(java.nio.file.LinkOption...)
    • resolve

      Path resolve​(Path other)
      指定されたパスをこのパスに対して解決します。

      otherパラメータが絶対パスである場合、このメソッドは普通にotherを返します。 other空のパスである場合、このメソッドは普通にこのパスを返します。 それ以外の場合、このメソッドはこのパスをディレクトリとみなし、指定されたパスをこのパスに対して解決します。 もっとも単純なのは、指定されたパスにルート・コンポーネントがない場合です。その場合、このメソッドは指定されたパスをこのパスに結合し、指定されたパスで終わるパスを結果として返します。 指定されたパスにルート・コンポーネントがある場合、解決は実装に大きく依存するため、未指定です。

      パラメータ:
      other - このパスに対して解決するパス
      戻り値:
      結果のパス
      関連項目:
      relativize(java.nio.file.Path)
    • resolve

      default Path resolve​(String other)
      指定されたパス文字列をPathに変換してから、resolveメソッドで指定されたとおりの方法で、このPathに対して解決します。 たとえば、名前区切り文字が「/」で、パスが「foo/bar」を表すとします。このメソッドをパス文字列「gus」で呼び出すと、結果はPath "foo/bar/gus"となります。
      実装要件:
      デフォルトの実装は、このパスと同等です:
      
           resolve(getFileSystem().getPath(other));
       
      パラメータ:
      other - このパスに対して解決するパス文字列
      戻り値:
      結果のパス
      例外:
      InvalidPathException - パス文字列をPathに変換できない場合。
      関連項目:
      FileSystem.getPath(java.lang.String, java.lang.String...)
    • resolveSibling

      default Path resolveSibling​(Path other)
      指定されたパスをこのパスのパスに対して解決します。 これは、ファイル名を別のファイル名に置き換える必要がある場合に役立ちます。 たとえば、名前の区切り文字が"/"でパスが"dir1/dir2/foo"を表しているとすると、このメソッドをPath "bar"で呼び出すと、 Path "dir1/dir2/bar"になります。 このパスに親パスが含まれていない場合、またはother絶対パスである場合、このメソッドはotherを返します。 otherが空のパスである場合、このメソッドはこのパスの親を返し、このパスに親がない場合は、空のパスを返します。
      実装要件:
      デフォルトの実装は、このパスと同等です:
      
           (getParent() == null) ? other : getParent().resolve(other);
       
      other == null以外の場合は、NullPointerExceptionがスローされます。
      パラメータ:
      other - このパスの親に対して解決するパス
      戻り値:
      結果のパス
      関連項目:
      resolve(Path)
    • resolveSibling

      default Path resolveSibling​(String other)
      指定されたパス文字列をPathに変換してから、resolveSiblingメソッドで指定されたとおりの方法で、このパスのパスに対して解決します。
      実装要件:
      デフォルトの実装は、このパスと同等です:
      
           resolveSibling(getFileSystem().getPath(other));
       
      パラメータ:
      other - このパスの親に対して解決するパス文字列
      戻り値:
      結果のパス
      例外:
      InvalidPathException - パス文字列をPathに変換できない場合。
      関連項目:
      FileSystem.getPath(java.lang.String, java.lang.String...)
    • relativize

      Path relativize​(Path other)
      このパスと指定されたパスとの間の相対パスを構築します。

      相対化は、解決の逆です。 このメソッドは、このパスに対して解決すると指定されたパスと同じファイルを検出するパスを生成する、相対パスを構築しようとします。 たとえば、UNIXでは、このパスが"/a/b"で、指定されたパスが"/a/b/c/d"である場合、結果となる相対パスは"c/d"になります。 このパスと指定されたパスにルート・コンポーネントがない場合は、相対パスを構築できます。 それらのパスのどちらか一方だけにルート・コンポーネントがある場合は、相対パスを構築できません。 両方のパスにルート・コンポーネントがある場合、相対パスを構築できるかどうかは実装に依存します。 このパスと指定されたパスが等しい場合は、空のパスが返されます。

      2つの正規化されたパスpqについて(ここでの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です。 クエリーおよびフラグメント・コンポーネントは未定義です。 機関コンポーネントが定義されているかどうかは、実装に依存します。 URIjava.io.Fileの構築に使用できるという保証はありません。 特に、このパスが汎用命名規則(UNC)パスを表す場合は、UNCサーバー名を結果となるURIの機関コンポーネントでエンコードできます。 デフォルト・プロバイダで、ファイルが存在し、そのファイルがディレクトリであると判定できる場合、結果となるURIはスラッシュで終わります。

      デフォルト・プロバイダは同様のラウンド・トリップの保証をFileクラスに提供します。 Path pが指定された場合は、次が保証されます。

      Path.of(p.toUri()).equals(p .toAbsolutePath())
      オリジナルのPathURI、および新しい Pathがすべて、同じJava仮想マシンの(おそらく異なる呼び出し)で作成されている限りです。 ほかのプロバイダが保証を行うかどうかはプロバイダによって異なるため、未指定です。

      ファイルの内容にファイル・システムとしてアクセスするためのファイル・システムが構築される場合、返されるURIがそのファイル・システム内の指定されたパスを表すか、または包含するファイル・システムのURIをエンコードする複合 URIを表すかは、実装によって大きく異なります。 このリリースでは、複合URIの形式は定義されていません。そのようなスキームは、将来のリリースで追加される可能性があります。

      戻り値:
      このパスを表すURI
      例外:
      IOError - 絶対パスの取得中に入出力エラーが発生した場合、またはファイルの内容にファイル・システムとしてアクセスするためのファイル・システムが構築され、包含するファイル・システムのURIを取得できない場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのtoAbsolutePathメソッドがセキュリティ例外をスローする場合。
    • toAbsolutePath

      Path toAbsolutePath()
      このパスの絶対パスを表すPathオブジェクトを返します。

      このパスがすでに絶対である場合、このメソッドは単にこのパスを返すだけです。 それ以外の場合、このメソッドはそのパスを実装に依存した方法で(通常はそのパスをファイル・システムのデフォルト・ディレクトリに対して解決することによって)解決します。 実装によっては、このメソッドはファイル・システムにアクセスできない場合に入出力エラーをスローすることがあります。

      戻り値:
      絶対パスを表すPathオブジェクト
      例外:
      IOError - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、このパスが絶対でない場合、セキュリティ・マネージャのcheckPropertyAccessメソッドが呼び出されてシステム・プロパティuser.dirへのアクセスがチェックされる
    • toRealPath

      Path toRealPath​(LinkOption... options) throws IOException
      既存のファイルの実際のパスを返します。

      このメソッドの正確な定義は実装に依存しますが、通常、それはこのパス(このパスと同じファイルを検出するが、ディレクトリおよびファイルの実際の名前を表す名前要素を含む絶対パス)から派生しています。 たとえば、ファイル・システムに対するファイル名の比較で大文字と小文字が区別されない場合、名前要素は大文字と小文字の違いを実際に合わせて名前を表します。 また、結果となるパスからは冗長な名前要素が削除されています。

      このパスが相対である場合は、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

      default Iterator<Path> iterator()
      このパスの名前要素を処理するイテレータを返します。

      イテレータによって返される最初の要素は、ディレクトリ階層のルートにもっとも近い名前要素を表し、2番目の要素は次にもっとも近い名前要素となり、以降も同様です。 返される最後の要素は、このパスで示されるファイルまたはディレクトリの名前です。 イテレータでは、ルート・コンポーネント(存在する場合)は返されません。

      定義:
      iterator、インタフェース: Iterable<Path>
      実装要件:
      デフォルトの実装では、getName(index)によって返されるPath(indexの範囲は0からgetNameCount() - 1までの範囲)を通過するIterator<Path>が返されます。
      戻り値:
      このパスの名前要素を処理するイテレータ。
    • 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メソッドの汎用規約を満たします。

      オーバーライド:
      equals 、クラス:  Object
      パラメータ:
      other - このオブジェクトと比較するオブジェクト
      戻り値:
      指定されたオブジェクトがこのPathと同じPathである場合にのみtrue
      関連項目:
      Object.hashCode()HashMap
    • hashCode

      int hashCode()
      このパスのハッシュ・コードを計算します。

      ハッシュ・コードは、パスのコンポーネントに基づいており、Object.hashCodeメソッドの汎用規約を満たします。

      オーバーライド:
      hashCode 、クラス:  Object
      戻り値:
      このパスのハッシュ・コード値
      関連項目:
      Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
    • toString

      String toString()
      このパスの文字列表現を返します。

      getPathメソッドを使用してパス文字列を変換することでこのパスが作成された場合は、このメソッドによって返されるパス文字列がパスの作成に使用された元のStringと異なることがあります。

      返されるパス文字列は、デフォルトの名前区切り文字を使用してパスの名前を区切ります。

      オーバーライド:
      toString 、クラス:  Object
      戻り値:
      このパスの文字列表現