モジュール java.base
パッケージ java.io

クラスFile

  • すべての実装されたインタフェース:
    Serializable, Comparable<File>

    public class File
    extends Object
    implements Serializable, Comparable<File>
    ファイルおよびディレクトリのパス名の抽象表現です。

    ユーザー・インタフェースおよびオペレーティング・システムは、システムに依存するパス名文字列でファイルおよびディレクトリを指定します。 このクラスは、階層的なパス名の抽象的でシステムに依存しないビューを提供します。 抽象パス名は2つのコンポーネントで構成されます。

    1. システムに依存する任意指定の接頭辞文字列。ディスク・ドライブ指示子、UNIXルート・ディレクトリの"/"、Microsoft Windows UNCパス名の"\\\" など
    2. ゼロ以上の文字列名前のシーケンス。
    抽象パス名の最初の名前は、ディレクトリ名またはホスト名(Microsoft Windows UNCパス名の場合)にすることができます。 抽象パス名のそれ以降の各名前はディレクトリを示します。最後の名前はディレクトリとファイルのいずれかを示します。 の抽象パス名は接頭辞を持たず、名前シーケンスは空です。

    パス名文字列と抽象パス名の間の変換は、本質的にシステムに依存します。 抽象パス名がパス名文字列に変換されると、各名前は1つのデフォルトの区切り文字で区切られます。 デフォルトの名前区切り文字は、システム・プロパティfile.separatorによって定義され、このクラスのpublic staticフィールドseparatorおよびseparatorCharで使用可能になります。 パス名文字列が抽象パス名に変換されると、その中の名前はデフォルトの名前区切り文字で区切られるか、ベースとなるシステムがサポートするほかの名前区切り文字で区切られます。

    パス名(抽象形式または文字列形式のどちらでも)は、絶対または相対のどちらかです。 絶対パス名は完全であり、それが示すファイルを見つけるためにほかの情報を必要としません。 一方、相対パス名は、ほかのパス名からの情報を利用して解釈される必要があります。 デフォルトでは、java.ioパッケージのクラスは、常に現在のユーザー・ディレクトリを基準に相対パス名を解決します。 このディレクトリはシステム・プロパティuser.dirで指定され、通常はJava仮想マシンの呼出し元のディレクトリです。

    抽象パス名のは、このクラスのgetParent()メソッドを呼び出すことで取得でき、パス名の接頭辞(存在する場合)およびパス名の名前シーケンスの各名前(最後の名前を除く)で構成されます。 各ディレクトリの絶対パス名は、絶対抽象パス名がそのディレクトリの絶対パス名で始まるすべてのFileオブジェクトの上位にあります。 たとえば、抽象パス名/usrが示すディレクトリは、/usr/local/binというパス名で示されるディレクトリの上位にあります。

    接頭辞の概念は、次のように、UNIXプラットフォームのルート・ディレクトリ、およびMicrosoft Windowsプラットフォームのドライブ指示子、ルート・ディレクトリ、およびUNCパス名を扱うために使用されます。

    • UNIXプラットフォームの場合、絶対パス名の接頭辞は常に"/"です。 相対パス名は接頭辞を持ちません。 ルート・ディレクトリを示す抽象パス名は、接頭辞"/"と空の名前シーケンスを持ちます。
    • Microsoft Windowsプラットフォームの場合、ドライブ指示子を含むパス名の接頭辞は、パス名が絶対の場合はドライブ名、":"(その後に"\"が続く場合がある)で構成されます。 UNCパス名の接頭辞は"\\\"です。ホスト名および共有名は名前シーケンス内の最初の2つの名前です。 ドライブを指定しない相対パス名は接頭辞を持ちません。

    このクラスのインスタンスは、実際のファイル・システム・オブジェクト(ファイルやディレクトリなど)を示す場合も、示さない場合もあります。 このようなオブジェクトを示す場合、そのオブジェクトはパーティション内に存在します。 パーティションとは、ファイル・システム用の記憶域でオペレーティング・システム固有の部分です。 1つの記憶装置(物理ディスク・ドライブ、フラッシュ・メモリー、CD-ROMなど)に、複数のパーティションが含まれることがあります。 オブジェクトが存在する場合は、このパス名の絶対形式の上位にあるものによって指定されるパーティションに存在します。

    ファイル・システムでは、実際のファイル・システム・オブジェクトに対する特定の操作(読み取り、書き込み、実行など)への制約を実装することができます。 これらの制約を総称してアクセス権と呼びます。 ファイル・システムには、1つのオブジェクトに対して複数の組のアクセス権が設定されていることがあります。 たとえば、ある組をオブジェクトの所有者に適用し、別の組をほかのすべてのユーザーに適用することができます。 オブジェクトのアクセス権が原因で、このクラスの一部のメソッドが失敗することがあります。

    Fileクラスのインスタンスは不変です。つまり、一度作成されると、Fileオブジェクトで表される抽象パス名は変更されません。

    java.nio.fileパッケージとの相互運用性

    java.nio.fileパッケージは、ファイル、ファイル属性、およびファイル・システムにアクセスするためのJava仮想マシン用のインタフェースとクラスを定義します。 このAPIは、java.io.Fileクラスの多くの制限を克服するために使用できます。 Fileオブジェクトによって表される抽象パスを使用してファイルを見つけるPathを取得するには、toPathメソッドを使用します。 取得されたPathは、その後のファイル操作、ファイル属性、および入出力例外に対してより効率的で広範なアクセスを提供し、ファイルに対する操作が失敗したときにエラーを診断するために、Filesクラスで使用できます。

    導入されたバージョン:
    1.0
    関連項目:
    直列化された形式
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      static String pathSeparator
      システムに依存するパス区切り文字です。利便性のため文字列で表されます。
      static char pathSeparatorChar
      システムに依存するパス区切り文字です。
      static String separator
      システムに依存するデフォルトの名前区切り文字です。利便性のため文字列で表されます。
      static char separatorChar
      システムに依存するデフォルトの名前区切り文字です。
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      File​(File parent, String child)
      親抽象パス名および子パス名文字列から新しいFileのインスタンスを生成します。
      File​(String pathname)
      指定されたパス名文字列を抽象パス名に変換して、新しいFileのインスタンスを生成します。
      File​(String parent, String child)
      親パス名文字列および子パス名文字列から新しいFileのインスタンスを生成します。
      File​(URI uri)
      指定されたfile: URIを抽象パス名に変換して、新しいFileのインスタンスを生成します。
    • メソッドのサマリー

      修飾子と型 メソッド 説明
      boolean canExecute()
      この抽象パス名が示すファイルをアプリケーションが実行できるかどうかを判定します。
      boolean canRead()
      この抽象パス名が示すファイルをアプリケーションが読み込めるかどうかを判定します。
      boolean canWrite()
      この抽象パス名が示すファイルをアプリケーションが変更できるかどうかを判定します。
      int compareTo​(File pathname)
      2つの抽象パス名を語彙的に比較します。
      boolean createNewFile()
      この抽象パス名が示す空の新しいファイルを不可分(atomic)に生成します(その名前のファイルがまだ存在しない場合だけ)。
      static File createTempFile​(String prefix, String suffix)
      指定された接頭辞と接尾辞をファイル名の生成に使用して、デフォルトの一時ファイル・ディレクトリに空のファイルを生成します。
      static File createTempFile​(String prefix, String suffix, File directory)
      指定されたディレクトリで新しい空のファイルを生成し、その名前には、指定された接頭辞および接尾辞の文字列が使用されます。
      boolean delete()
      この抽象パス名が示すファイルまたはディレクトリを削除します。
      void deleteOnExit()
      この抽象パス名が示すファイルまたはディレクトリが、仮想マシンが終了したときに削除されるように要求します。
      boolean equals​(Object obj)
      この抽象パス名が指定されたオブジェクトと等しいかどうかを判定します。
      boolean exists()
      この抽象パス名が示すファイルまたはディレクトリが存在するかどうかを判定します。
      File getAbsoluteFile()
      この抽象パス名の絶対形式を返します。
      String getAbsolutePath()
      この抽象パス名の絶対パス名文字列を返します。
      File getCanonicalFile()
      この抽象パス名の正規の形式を返します。
      String getCanonicalPath()
      この抽象パス名の正規のパス名文字列を返します。
      long getFreeSpace()
      この抽象パス名で指定されるパーティション内で未割当てのバイト数を返します。
      String getName()
      この抽象パス名が示すファイルまたはディレクトリの名前を返します。
      String getParent()
      この抽象パス名の親のパス名文字列を返します。このパス名が親ディレクトリを示さない場合はnullを返します。
      File getParentFile()
      この抽象パス名の親の抽象パス名を返します。このパス名が親ディレクトリを示さない場合はnullを返します。
      String getPath()
      この抽象パス名をパス名文字列に変換します。
      long getTotalSpace()
      この抽象パス名で指定されるパーティションのサイズを返します。
      long getUsableSpace()
      この抽象パス名で指定されるパーティション上で、この仮想マシンが利用できるバイト数を返します。
      int hashCode()
      この抽象パス名のハッシュ・コードを計算します。
      boolean isAbsolute()
      この抽象パス名が絶対かどうかを判定します。
      boolean isDirectory()
      この抽象パス名が示すファイルがディレクトリであるかどうかを判定します。
      boolean isFile()
      この抽象パス名が示すファイルが普通のファイルかどうかを判定します。
      boolean isHidden()
      この抽象パス名が示すファイルが隠しファイルかどうかを判定します。
      long lastModified()
      この抽象パス名が示すファイルが最後に変更された時間を返します。
      long length()
      この抽象パス名に指定されているファイルの長さを返します。
      String[] list()
      この抽象パス名が示すディレクトリにあるファイルおよびディレクトリを示す文字列の配列を返します。
      String[] list​(FilenameFilter filter)
      この抽象パス名が示すディレクトリにあるファイルおよびディレクトリの中で、指定されたフィルタの基準を満たすものの文字列の配列を返します。
      File[] listFiles()
      この抽象パス名が示すディレクトリ内のファイルを示す抽象パス名の配列を返します。
      File[] listFiles​(FileFilter filter)
      この抽象パス名が示すディレクトリにあるファイルおよびディレクトリの中で、指定されたフィルタの基準を満たすものの抽象パス名の配列を返します。
      File[] listFiles​(FilenameFilter filter)
      この抽象パス名が示すディレクトリにあるファイルおよびディレクトリの中で、指定されたフィルタの基準を満たすものの抽象パス名の配列を返します。
      static File[] listRoots()
      有効なファイル・システムのルートをリスト表示します。
      boolean mkdir()
      この抽象パス名が示すディレクトリを生成します。
      boolean mkdirs()
      この抽象パス名が示すディレクトリを生成します。存在していないが必要な親ディレクトリも一緒に作成されます。
      boolean renameTo​(File dest)
      この抽象パス名が示すファイルの名前を変更します。
      boolean setExecutable​(boolean executable)
      この抽象パス名に所有者の実行権を設定する簡易メソッドです。
      boolean setExecutable​(boolean executable, boolean ownerOnly)
      この抽象パス名に所有者または全員の実行権を設定します。
      boolean setLastModified​(long time)
      この抽象パス名が示すファイルまたはディレクトリが変更された時刻を設定します。
      boolean setReadable​(boolean readable)
      この抽象パス名に所有者の読取り権を設定する簡易メソッドです。
      boolean setReadable​(boolean readable, boolean ownerOnly)
      この抽象パス名に所有者または全員の読取り権を設定します。
      boolean setReadOnly()
      この抽象パス名が示すファイルまたはディレクトリにマークを設定し、読込みオペレーションだけが許可されるようにします。
      boolean setWritable​(boolean writable)
      この抽象パス名に所有者の書込み権を設定する簡易メソッドです。
      boolean setWritable​(boolean writable, boolean ownerOnly)
      この抽象パス名に所有者または全員の書込み権を設定します。
      Path toPath()
      この抽象パスから構築されたjava.nio.file.Pathオブジェクトを返します。
      String toString()
      この抽象パス名のパス名文字列を返します。
      URI toURI()
      この抽象パス名を表すfile: URIを構築します。
      URL toURL()
      非推奨。
      このメソッドでは、URL内で使用できないエスケープ文字は自動的に変換できません。
    • フィールドの詳細

      • separatorChar

        public static final char separatorChar
        システムに依存するデフォルトの名前区切り文字です。 このフィールドは、システム・プロパティfile.separatorの値の最初の文字を格納するように初期化されます。 UNIXシステムの場合、このフィールドの値は'/'、Microsoft Windowsシステムの場合は'\\'です。
        関連項目:
        System.getProperty(java.lang.String)
      • separator

        public static final String separator
        システムに依存するデフォルトの名前区切り文字です。利便性のため文字列で表されます。 この文字列には、単一の文字、つまりseparatorCharが含まれています。
      • pathSeparatorChar

        public static final char pathSeparatorChar
        システムに依存するパス区切り文字です。 このフィールドは、システム・プロパティpath.separatorの値の最初の文字を格納するように初期化されます。 この文字は、パス・リストとして渡されるファイルのシーケンス中のファイル名を区切るために使用されます。 UNIXシステムの場合、この区切り文字は':'です。Microsoft Windowsシステムでは';'です。
        関連項目:
        System.getProperty(java.lang.String)
      • pathSeparator

        public static final String pathSeparator
        システムに依存するパス区切り文字です。利便性のため文字列で表されます。 この文字列には、単一の文字、つまりpathSeparatorCharが含まれています。
    • コンストラクタの詳細

      • File

        public File​(String pathname)
        指定されたパス名文字列を抽象パス名に変換して、新しいFileのインスタンスを生成します。 指定された文字列が空の文字列の場合、結果は空の抽象パス名になります。
        パラメータ:
        pathname - パス名文字列
        例外:
        NullPointerException - pathname引数がnullである場合
      • File

        public File​(String parent,
                    String child)
        親パス名文字列および子パス名文字列から新しいFileのインスタンスを生成します。

        parentnullの場合、新しいFileのインスタンスは、指定されたchildパス名文字列で単一引数のFileコンストラクタを呼び出したように生成されます。

        そうでない場合、parentパス名文字列はディレクトリを示し、childパス名文字列はディレクトリまたはファイルを示します。 childパス名文字列が絶対の場合、それはシステムに依存する方法で相対パス名に変換されます。 parentが空の文字列の場合、新しいFileのインスタンスは、childを抽象パス名に変換し、その結果をシステムに依存するデフォルト・ディレクトリを基準に解決することで生成されます。 そうでない場合、各パス名文字列は抽象パス名に変換され、子抽象パス名は親を基準に解決されます。

        パラメータ:
        parent - 親パス名文字列
        child - 子パス名文字列
        例外:
        NullPointerException - childnullである場合
      • File

        public File​(File parent,
                    String child)
        親抽象パス名および子パス名文字列から新しいFileのインスタンスを生成します。

        parentnullの場合、新しいFileのインスタンスは、指定されたchildパス名文字列で単一引数のFileコンストラクタを呼び出したように生成されます。

        そうでない場合、parent抽象パス名はディレクトリを示し、childパス名文字列はディレクトリまたはファイルを示します。 childパス名文字列が絶対の場合、それはシステムに依存する方法で相対パス名に変換されます。 parentが空の抽象パス名の場合、新しいFileのインスタンスは、childを抽象パス名に変換し、その結果をシステムに依存するデフォルト・ディレクトリを基準に解決することで生成されます。 そうでない場合、各パス名文字列は抽象パス名に変換され、子抽象パス名は親を基準に解決されます。

        パラメータ:
        parent - 親抽象パス名
        child - 子パス名文字列
        例外:
        NullPointerException - childnullである場合
      • File

        public File​(URI uri)
        指定されたfile: URIを抽象パス名に変換して、新しいFileのインスタンスを生成します。

        file: URIの形式はシステムに依存するため、このコンストラクタが行う変換もシステムに依存します。

        指定された抽象パス名がfの場合は、次のように変換されます。

        new File( f.toURI()).equals( f.getAbsoluteFile())
        この例の場合、元の抽象パス名、URI、および新しい抽象パス名は、同じJava仮想マシンの複数の呼出しで作成する必要があります。 ただし、あるオペレーティング・システムの仮想マシンで作成したfile: URIを別のオペレーティング・システムの仮想マシンの抽象パス名に変換する場合、通常はこのように変換されません。

        パラメータ:
        uri - 階層型の絶対URI。形式は、"file"、空でないパス・コンポーネント、未定義の権限、クエリー、フラグメント・コンポーネントと同等
        例外:
        NullPointerException - urinullの場合
        IllegalArgumentException - 上記のパラメータの前提条件が満たされていない場合
        導入されたバージョン:
        1.4
        関連項目:
        toURI()URI
    • メソッドの詳細

      • getName

        public String getName()
        この抽象パス名が示すファイルまたはディレクトリの名前を返します。 これは、パス名の名前シーケンスの最後の名前です。 パス名の名前シーケンスが空の場合、空の文字列が返されます。
        戻り値:
        この抽象パス名が示すファイルまたはディレクトリの名前。このパス名の名前シーケンスが空の場合は空の文字列
      • getParent

        public String getParent()
        この抽象パス名の親のパス名文字列を返します。このパス名が親ディレクトリを示さない場合はnullを返します。

        抽象パス名のは、パス名の接頭辞(存在する場合)およびパス名の名前シーケンスの各名前(最後の名前を除く)で構成されます。 名前シーケンスが空の場合、パス名は親ディレクトリを示しません。

        戻り値:
        この抽象パス名が示す親ディレクトリのパス名文字列。このパス名が親を示さない場合はnull
      • getParentFile

        public File getParentFile()
        この抽象パス名の親の抽象パス名を返します。このパス名が親ディレクトリを示さない場合はnullを返します。

        抽象パス名のは、パス名の接頭辞(存在する場合)およびパス名の名前シーケンスの各名前(最後の名前を除く)で構成されます。 名前シーケンスが空の場合、パス名は親ディレクトリを示しません。

        戻り値:
        この抽象パス名が示す親ディレクトリの抽象パス名。このパス名が親を示さない場合はnull
        導入されたバージョン:
        1.2
      • getPath

        public String getPath()
        この抽象パス名をパス名文字列に変換します。 結果の文字列は、default name-separator characterを使用して、名前シーケンスの名前を区切ります。
        戻り値:
        この抽象パス名の文字列形式
      • isAbsolute

        public boolean isAbsolute()
        この抽象パス名が絶対かどうかを判定します。 絶対パス名の定義はシステムに依存します。 UNIXシステムで接頭辞が"/"の場合、パス名は絶対です。 Microsoft Windowsシステムでは、接頭辞がドライブ指示子のあとに"\"が続く場合、または接頭辞が"\\\"の場合、パス名は絶対です。
        戻り値:
        この抽象パス名が絶対である場合はtrue、そうでない場合はfalse
      • getAbsolutePath

        public String getAbsolutePath()
        この抽象パス名の絶対パス名文字列を返します。

        この抽象パス名がすでに絶対パスである場合、パス名文字列は単にgetPath()メソッドのように返されます。 この抽象パス名が空の抽象パス名の場合、現在のユーザー・ディレクトリ(システム・プロパティuser.dirで示される)のパス名文字列が返されます。 そうでない場合、このパス名はシステムに依存する方法で解決されます。 UNIXシステムの場合、相対パス名は現在のユーザー・ディレクトリを基準に解決することで絶対になります。 Microsoft Windowsシステムの場合、相対パス名はパス名で示されたドライブの現在のディレクトリがある場合は、それを基準に解決することで絶対になります。ない場合は、現在のユーザー・ディレクトリを基準に解決されます。

        戻り値:
        この抽象パス名と同じファイルまたはディレクトリを示す絶対パス名文字列
        例外:
        SecurityException - 必須のシステム・プロパティの値にアクセスできない場合。
        関連項目:
        isAbsolute()
      • getAbsoluteFile

        public File getAbsoluteFile()
        この抽象パス名の絶対形式を返します。 new File(this.getAbsolutePath())と同等です。
        戻り値:
        この抽象パス名と同じファイルまたはディレクトリを示す絶対パス名
        例外:
        SecurityException - 必須のシステム・プロパティの値にアクセスできない場合。
        導入されたバージョン:
        1.2
      • getCanonicalPath

        public String getCanonicalPath()
                                throws IOException
        この抽象パス名の正規のパス名文字列を返します。

        正規のパス名は、一意の絶対パスです。 正規のパス名の正確な定義は、システムに依存します。 このメソッドはまず、getAbsolutePath()メソッドを呼び出した場合のように、必要に応じてパス名を絶対形式に変換してから、システムに依存する一意の形式にマップします。 このとき、通常は、パス名から"."".."などの冗長名を削除し、シンボリック・リンクを解決し(UNIXプラットフォームの場合)、ドライブ名の大文字小文字を適切に変換し(Microsoft Windowsプラットフォームの場合)ます。

        既存のファイルまたはディレクトリを示す各パス名には、それぞれに固有の正規の形式があります。 存在しないファイルまたはディレクトリを示す各パス名にも固有の正規の形式があります。 存在しないファイルまたはディレクトリのパス名の正規の形式は、そのファイルまたはディレクトリが作成されたあとの同じパス名の正規の形式とは異なる場合があります。 同じように、既存のファイルまたはディレクトリのパス名の正規の形式は、そのファイルまたはディレクトリが削除されたあとの同じパス名の正規の形式とは異なる場合があります。

        戻り値:
        この抽象パス名と同じファイルまたはディレクトリを示す正規パス名文字列
        例外:
        IOException - 入出力エラーが発生した場合。正規のパス名を構築するとファイル・システムのクエリーが必要になることがあるため、発生する可能性がある
        SecurityException - 必要なシステム・プロパティ値にアクセスできない場合、またはセキュリティ・マネージャが存在し、そのSecurityManager.checkRead(java.io.FileDescriptor)メソッドがファイルへの読み取りアクセスを拒否した場合
        導入されたバージョン:
        1.1
        関連項目:
        Path.toRealPath(java.nio.file.LinkOption...)
      • getCanonicalFile

        public File getCanonicalFile()
                              throws IOException
        この抽象パス名の正規の形式を返します。 new File(this.getCanonicalPath())と同等です。
        戻り値:
        この抽象パス名と同じファイルまたはディレクトリを示す正規パス名文字列
        例外:
        IOException - 入出力エラーが発生した場合。正規のパス名を構築するとファイル・システムのクエリーが必要になることがあるため、発生する可能性がある
        SecurityException - 必要なシステム・プロパティ値にアクセスできない場合、またはセキュリティ・マネージャが存在し、そのSecurityManager.checkRead(java.io.FileDescriptor)メソッドがファイルへの読み取りアクセスを拒否した場合
        導入されたバージョン:
        1.2
        関連項目:
        Path.toRealPath(java.nio.file.LinkOption...)
      • toURL

        @Deprecated
        public URL toURL()
                  throws MalformedURLException
        非推奨。
        このメソッドでは、URL内で使用できないエスケープ文字は自動的に変換できません。 新しいコードの抽象パス名をURLに変換するには、まずtoURIメソッドを使用してURIに変換してから、URI.toURLメソッドを使用してURLに変換することをお薦めします。
        この抽象パス名をfile: URLに変換します。 URLの正確な形式はシステムに依存します。 この抽象パス名が示すファイルがディレクトリであると判別できた場合、変換後のURLはスラッシュで終わります。
        戻り値:
        ファイルURLを表すURLオブジェクト
        例外:
        MalformedURLException - パスをURLとして構文解析できない場合
        導入されたバージョン:
        1.2
        関連項目:
        toURI(), URI, URI.toURL(), URL
      • toURI

        public URI toURI()
        この抽象パス名を表すfile: URIを構築します。

        URIの正確な形式はシステムに依存します。 この抽象パス名が示すファイルがディレクトリであると判別できた場合、変換後のURIはスラッシュで終わります。

        指定された抽象パス名がfの場合は、次のように変換されます。

        new File( f.toURI()).equals(  f.getAbsoluteFile())
        この例の場合、元の抽象パス名、URI、および新しい抽象パス名は、同じJava仮想マシンの複数の呼出しで作成する必要があります。 ただし、あるオペレーティング・システムの仮想マシンで作成したfile: URIを別のオペレーティング・システムの仮想マシンの抽象パス名に変換する場合、抽象パス名はシステムに依存するため、通常はこのように変換されません。

        この抽象パス名がUNCパス名を表している場合は、UNCのすべてのコンポーネント(サーバー名コンポーネントを含む)がURIパスに変換されます。 機関コンポーネントは未定義となり、nullとして表されます。 Pathクラスには、作成されるURIの機関コンポーネントのサーバー名を変換するtoUriメソッドが定義されています。 toPathメソッドを使用すると、この抽象パス名を表すPathを取得できます。

        戻り値:
        階層型の絶対URI。形式は、"file"、この抽象パス名を表すパス、未定義の権限、クエリー、フラグメント・コンポーネントと同等
        例外:
        SecurityException - 必須のシステム・プロパティの値にアクセスできない場合。
        導入されたバージョン:
        1.4
        関連項目:
        File(java.net.URI), URIURI.toURL()
      • canRead

        public boolean canRead()
        この抽象パス名が示すファイルをアプリケーションが読み込めるかどうかを判定します。 一部のプラットフォームでは、読取り不可としてマークされたファイルの読取りを許可する特別な権限を使用してJava仮想マシンを起動できる場合があります。 その結果、このメソッドはファイルに読取り権がない場合でもtrueを返す可能性があります。
        戻り値:
        この抽象パス名が示すファイルが存在し、さらにアプリケーションがそれを読み込める場合だけtrue、そうでない場合はfalse
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(java.lang.String)メソッドがファイルへの読み取りアクセスを拒否した場合
      • canWrite

        public boolean canWrite()
        この抽象パス名が示すファイルをアプリケーションが変更できるかどうかを判定します。 一部のプラットフォームでは、読取り専用としてマークされたファイルの変更を許可する特別な権限を使用してJava仮想マシンを起動できる場合があります。 その結果、このメソッドはファイルが読取り専用としてマークされている場合でもtrueを返す可能性があります。
        戻り値:
        ファイル・システムにこの抽象パス名が示すファイルが実際にあり、さらにアプリケーションがそのファイルに書き込める場合はtrue、そうでない場合はfalse
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkWrite(java.lang.String)メソッドがファイルへの書き込みアクセスを拒否した場合
      • exists

        public boolean exists()
        この抽象パス名が示すファイルまたはディレクトリが存在するかどうかを判定します。
        戻り値:
        この抽象パス名が示すファイルまたはディレクトリが存在する場合はtrue、そうでない場合はfalse
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(java.lang.String)メソッドがファイルまたはディレクトリへの読み取りアクセスを拒否した場合
      • isDirectory

        public boolean isDirectory()
        この抽象パス名が示すファイルがディレクトリであるかどうかを判定します。

        ファイルがディレクトリではないときに入出力例外を判別する必要がある場合、または同じファイルのいくつかの属性が同時に必要な場合は、Files.readAttributesメソッドを使用できます。

        戻り値:
        この抽象パス名が示すファイルが存在し、さらにそれがディレクトリである場合はtrue、そうでない場合はfalse
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(java.lang.String)メソッドがファイルへの読み取りアクセスを拒否した場合
      • isFile

        public boolean isFile()
        この抽象パス名が示すファイルが普通のファイルかどうかを判定します。 ファイルは、それがディレクトリではなく、システムに依存するほかの基準を満たす場合に普通のファイルと見なされます。 Javaアプリケーションが生成したディレクトリ以外のファイルは、必ず普通のファイルです。

        ファイルが普通のファイルではないときに入出力例外を判別する必要がある場合、または同じファイルのいくつかの属性が同時に必要な場合は、Files.readAttributesメソッドを使用できます。

        戻り値:
        この抽象パス名が示すファイルが存在し、さらにそれが普通のファイルである場合はtrue、そうでない場合はfalse
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(java.lang.String)メソッドがファイルへの読み取りアクセスを拒否した場合
      • isHidden

        public boolean isHidden()
        この抽象パス名が示すファイルが隠しファイルかどうかを判定します。 隠し」の正確な定義はシステムに依存します。 UNIXシステムの場合、ファイルはその名前がピリオド('.')で始まる場合に隠しファイルとみなされます。 Microsoft Windowsシステムの場合、ファイルはファイル・システムでそのようにマークが設定されている場合に隠しファイルとみなされます。
        戻り値:
        この抽象パス名が示すファイルがベースとなるプラットフォームの規約に従って隠しファイルと見なされる場合だけtrue
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(java.lang.String)メソッドがファイルへの読み取りアクセスを拒否した場合
        導入されたバージョン:
        1.2
      • lastModified

        public long lastModified()
        この抽象パス名が示すファイルが最後に変更された時間を返します。
        APIの注:
        戻り値の時間単位はミリ秒ですが、値の粒度は基礎となるファイル・システムによって異なり、大きくなる場合もあります。 たとえば、いくつかのファイル・システムでは秒単位のタイムスタンプが使用されます。

        0Lが返されたときに入出力例外を判別する必要がある場合、同じファイルのいくつかの属性が同時に必要な場合、または最後のアクセスまたは作成が行なわれた時間が必要な場合は、Files.readAttributesを使用できます。 ただし、最後の変更の時間だけが必要な場合は、代わりにFiles.getLastModifiedTimeメソッドを使用できます。

        戻り値:
        ファイルが最後に変更された時刻を表すlong値。元期(1970年1月1日0時0分0秒GMT)からミリ秒単位で測定。ファイルが存在しないか、入出力エラーが発生した場合は0L この値は、エポックの前のミリ秒数を示す負数であってもよい
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(java.lang.String)メソッドがファイルへの読み取りアクセスを拒否した場合
      • length

        public long length()
        この抽象パス名に指定されているファイルの長さを返します。 パス名にディレクトリが指定されている場合、戻り値は指定されません。

        0Lが返されたときに入出力例外を判別する必要がある場合、または同じファイルのいくつかの属性が同時に必要な場合は、Files.readAttributesメソッドを使用できます。

        戻り値:
        この抽象パス名が示すファイルの長さ(バイト単位)。ファイルが存在しない場合は0L 一部のオペレーティング・システムでは、デバイスやパイプなどのシステム依存エンティティを示すパス名について0Lを返すことがある。
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(java.lang.String)メソッドがファイルへの読み取りアクセスを拒否した場合
      • createNewFile

        public boolean createNewFile()
                              throws IOException
        この抽象パス名が示す空の新しいファイルを不可分(atomic)に生成します(その名前のファイルがまだ存在しない場合だけ)。 ファイルがあるかどうかのチェックや、ない場合のファイルの生成は、そのファイルに影響を与える可能性のあるほかのすべてのファイル・システムの処理に対して不可分である単一の操作です。

        注:このメソッドをファイル・ロックのために使用しないでください。結果となるプロトコルを確実に動作させることができません。 代わりに、FileLock機能を使用するようにしてください。

        戻り値:
        指定されたファイルが存在せず、ファイルの生成に成功した場合はtrue、示されたファイルがすでに存在する場合はfalse
        例外:
        IOException - 入出力エラーが発生した場合
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkWrite(java.lang.String)メソッドがファイルへの書き込みアクセスを拒否した場合
        導入されたバージョン:
        1.2
      • delete

        public boolean delete()
        この抽象パス名が示すファイルまたはディレクトリを削除します。 このパス名がディレクトリを示す場合、そのディレクトリが削除されるためには空である必要があります。

        Filesクラスには、ファイルを削除できないときにIOExceptionをスローするdeleteメソッドが定義されています。 これは、エラーの報告、およびファイルを削除できない原因の診断を行う場合に便利です。

        戻り値:
        ファイルまたはディレクトリが正常に削除された場合はtrue、そうでない場合はfalse
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkDelete(java.lang.String)メソッドがファイルへのアクセスを拒否した場合
      • deleteOnExit

        public void deleteOnExit()
        この抽象パス名が示すファイルまたはディレクトリが、仮想マシンが終了したときに削除されるように要求します。 ファイル(またはディレクトリ)は、登録されたときと逆の順序で削除されます。 このメソッドを呼び出してすでに削除を登録済みであるファイルまたはディレクトリを削除しても、何の効果もありません。 削除は、『Java言語仕様』で定義されているように、仮想マシンが正常終了する場合にだけ試行されます。

        削除がいったん要求されると、その要求は取り消せません。 そのため、このメソッドの使用には注意が必要です。

        注:このメソッドをファイル・ロックのために使用しないでください。結果となるプロトコルを確実に動作させることができません。 代わりに、FileLock機能を使用するようにしてください。

        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkDelete(java.lang.String)メソッドがファイルへのアクセスを拒否した場合
        導入されたバージョン:
        1.2
        関連項目:
        delete()
      • list

        public String[] list()
        この抽象パス名が示すディレクトリにあるファイルおよびディレクトリを示す文字列の配列を返します。

        この抽象パス名がディレクトリを示さない場合、このメソッドはnullを返します。 ディレクトリを示す場合は、文字列の配列が返されます。文字列は、ディレクトリ内の各ファイルまたはディレクトリごとに1つです。 そのディレクトリ自体およびその親のディレクトリを示す名前は結果に含まれません。 各文字列は、絶対パスではなくファイル名です。

        結果の配列の名前文字列は特定の順序にはなりません。アルファベット順になるわけではありません。

        Filesクラスは、ディレクトリを開き、そのディレクトリ内のファイルの名前に対し反復処理を行うnewDirectoryStreamメソッドを定義することに注意してください。 このメソッドは、非常に大きなディレクトリを操作するときに使用されるリソースがより少なく、リモート・ディレクトリを操作するときの応答がより迅速である場合があります。

        戻り値:
        この抽象パス名が示すディレクトリにあるファイルおよびディレクトリを示す文字列の配列。 配列は、ディレクトリが空の場合は空になる。 この抽象パス名がディレクトリを示さない場合、または入出力エラーが発生した場合はnullを返す。
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(String)メソッドがディレクトリへの読取りアクセスを拒否した場合
      • list

        public String[] list​(FilenameFilter filter)
        この抽象パス名が示すディレクトリにあるファイルおよびディレクトリの中で、指定されたフィルタの基準を満たすものの文字列の配列を返します。 このメソッドの動作はlist()メソッドと同じですが、返された配列内の文字列はフィルタの基準を満たす必要があります。 指定されたfilternullの場合、すべての名前が受け入れられます。 そうでない場合、名前がフィルタの基準を満たすのは、フィルタのFilenameFilter.accept(File, String)メソッドが、この抽象パス名およびそれが示すディレクトリ内のファイルまたはディレクトリの名前で呼び出されたときにtrueが返される場合だけです。
        パラメータ:
        filter - ファイル名フィルタ
        戻り値:
        指定されたfilterによって受け入れられた、この抽象パス名が示すディレクトリ内のファイルおよびディレクトリを示す文字列の配列。 配列は、ディレクトリが空の場合またはフィルタがどの名前も受け入れない場合は空になる。 この抽象パス名がディレクトリを示さない場合、または入出力エラーが発生した場合はnullを返す。
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(String)メソッドがディレクトリへの読取りアクセスを拒否した場合
        関連項目:
        Files.newDirectoryStream(Path,String)
      • listFiles

        public File[] listFiles()
        この抽象パス名が示すディレクトリ内のファイルを示す抽象パス名の配列を返します。

        この抽象パス名がディレクトリを示さない場合、このメソッドはnullを返します。 ディレクトリを示す場合は、Fileオブジェクトの配列が返されます。Fileオブジェクトは、ディレクトリ内の各ファイルまたはディレクトリごとに1つです。 ディレクトリ自体およびその親のディレクトリを示すパス名は結果に含まれません。 結果として得られる各抽象パス名は、File(File, String)コンストラクタを使用することにより、この抽象パス名から構築されます。 そのため、このパス名が絶対の場合、結果として得られる各パス名は絶対です。このパス名が相対の場合、結果として得られる各パス名は同じディレクトリに対して相対です。

        結果の配列の名前文字列は特定の順序にはなりません。アルファベット順になるわけではありません。

        Filesクラスは、ディレクトリを開き、そのディレクトリ内のファイルの名前に対し反復処理を行うnewDirectoryStreamメソッドを定義することに注意してください。 これは、非常に大きなディレクトリを操作する場合に、使用されるリソースが少なくなる可能性があります。

        戻り値:
        この抽象パス名が示すディレクトリ内のファイルおよびディレクトリを示す抽象パス名の配列。 配列は、ディレクトリが空の場合は空になる。 この抽象パス名がディレクトリを示さない場合、または入出力エラーが発生した場合はnullを返す。
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(String)メソッドがディレクトリへの読取りアクセスを拒否した場合
        導入されたバージョン:
        1.2
      • listFiles

        public File[] listFiles​(FilenameFilter filter)
        この抽象パス名が示すディレクトリにあるファイルおよびディレクトリの中で、指定されたフィルタの基準を満たすものの抽象パス名の配列を返します。 このメソッドの動作はlistFiles()メソッドと同じですが、返された配列内のパス名はフィルタの基準を満たす必要があります。 指定されたfilternullの場合、すべてのパス名が受け入れられます。 そうでない場合、パス名がフィルタの基準を満たすのは、フィルタのFilenameFilter.accept(File, String)メソッドが、この抽象パス名およびそれが示すディレクトリ内のファイルまたはディレクトリの名前で呼び出されたときにtrueが返される場合だけです。
        パラメータ:
        filter - ファイル名フィルタ
        戻り値:
        この抽象パス名が示すディレクトリ内のファイルおよびディレクトリを示す抽象パス名の配列。 配列は、ディレクトリが空の場合は空になる。 この抽象パス名がディレクトリを示さない場合、または入出力エラーが発生した場合はnullを返す。
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(String)メソッドがディレクトリへの読取りアクセスを拒否した場合
        導入されたバージョン:
        1.2
        関連項目:
        Files.newDirectoryStream(Path,String)
      • listFiles

        public File[] listFiles​(FileFilter filter)
        この抽象パス名が示すディレクトリにあるファイルおよびディレクトリの中で、指定されたフィルタの基準を満たすものの抽象パス名の配列を返します。 このメソッドの動作はlistFiles()メソッドと同じですが、返された配列内のパス名はフィルタの基準を満たす必要があります。 指定されたfilternullの場合、すべてのパス名が受け入れられます。 そうでない場合、パス名がフィルタの基準を満たすのは、このフィルタのFileFilter.accept(File)メソッドがパス名で呼び出されたときにtrueの値が返される場合だけです。
        パラメータ:
        filter - ファイル・フィルタ
        戻り値:
        この抽象パス名が示すディレクトリ内のファイルおよびディレクトリを示す抽象パス名の配列。 配列は、ディレクトリが空の場合は空になる。 この抽象パス名がディレクトリを示さない場合、または入出力エラーが発生した場合はnullを返す。
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(String)メソッドがディレクトリへの読取りアクセスを拒否した場合
        導入されたバージョン:
        1.2
        関連項目:
        Files.newDirectoryStream(Path,java.nio.file.DirectoryStream.Filter)
      • mkdir

        public boolean mkdir()
        この抽象パス名が示すディレクトリを生成します。
        戻り値:
        ディレクトリが生成された場合はtrue、そうでない場合はfalse
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkWrite(java.lang.String)メソッドが指定されたディレクトリの作成を許可しない場合
      • mkdirs

        public boolean mkdirs()
        この抽象パス名が示すディレクトリを生成します。存在していないが必要な親ディレクトリも一緒に作成されます。 このオペレーションが失敗した場合でも、いくつかの必要な親ディレクトリの生成には成功した場合があります。
        戻り値:
        必要なすべての親ディレクトリを含めてディレクトリが生成された場合はtrue、そうでない場合はfalse
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(java.lang.String)メソッドが指定されたディレクトリと必要なすべての親ディレクトリの存在を確認できない場合またはSecurityManager.checkWrite(java.lang.String)メソッドが指定されたディレクトリを許可せず、必要なすべての親ディレクトリを作成できる場合
      • renameTo

        public boolean renameTo​(File dest)
        この抽象パス名が示すファイルの名前を変更します。

        このメソッドの動作の多くの部分は、本質的にプラットフォーム依存です。名前の変更操作では、ファイルをファイル・システム間で移動できないことがあります。この操作は不可分でないことがあります。また、移動先の抽象パス名を持つファイルがすでに存在する場合は、この操作が成功しない可能性があります。 名前の変更操作が成功したことを確認するために、常に戻り値を調べるようにしてください。

        Filesクラスには、プラットフォームに依存しない形式でファイルを移動または名前変更するためのmoveメソッドが定義されています。

        パラメータ:
        dest - 指定されたファイルの新しい抽象パス名
        戻り値:
        名前の変更が成功した場合はtrue、それ以外の場合はfalse
        例外:
        SecurityException - セキュリティ・マネージャが存在し、SecurityManager.checkWrite(java.lang.String)メソッドが古いパス名または新しいパス名への書き込みアクセスを拒否した場合
        NullPointerException - destパラメータがnullである場合
      • setLastModified

        public boolean setLastModified​(long time)
        この抽象パス名が示すファイルまたはディレクトリが変更された時刻を設定します。

        すべてのプラットフォームは、秒単位に丸められたファイル変更時刻をサポートしますが、中にはもっと高い精度をサポートするものもあります。 引数は、サポートされている精度に合わせて切り捨てられます。 操作が成功し、ファイルへの介入操作が行われない場合、次にlastModified()メソッドを呼び出すと、このメソッドに渡された(おそらく切り捨てられた) time引数が返されます。

        パラメータ:
        time - 新しい最終変更時間。元期(1970年1月1日0時0分0秒GMT)からミリ秒単位で測定
        戻り値:
        操作が成功した場合はtrue、それ以外の場合はfalse
        例外:
        IllegalArgumentException - 引数が負の値の場合
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkWrite(java.lang.String)メソッドが指定されたファイルへの書き込みアクセスを拒否した場合
        導入されたバージョン:
        1.2
      • setReadOnly

        public boolean setReadOnly()
        この抽象パス名が示すファイルまたはディレクトリにマークを設定し、読込みオペレーションだけが許可されるようにします。 このメソッドを呼び出した後、ファイルまたはディレクトリはそれが削除されるか、書込みアクセスを許可するようにマークされるまで変更されません。 一部のプラットフォームでは、読取り専用としてマークされたファイルの変更を許可する特別な権限を使用してJava仮想マシンを起動できる場合があります。 読込み専用ファイルまたはディレクトリが削除できるかどうかは、背後のシステムに依存します。
        戻り値:
        操作が成功した場合はtrue、それ以外の場合はfalse
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkWrite(java.lang.String)メソッドが指定されたファイルへの書き込みアクセスを拒否した場合
        導入されたバージョン:
        1.2
      • setWritable

        public boolean setWritable​(boolean writable,
                                   boolean ownerOnly)
        この抽象パス名に所有者または全員の書込み権を設定します。 一部のプラットフォームでは、書込み操作を許可しないファイルの変更を許可する特別な権限を使用してJava仮想マシンを起動できる場合があります。

        Filesクラスは、ファイル・アクセス権を含むファイル属性を操作するメソッドを定義します。 これは、ファイル・アクセス権をより細かく操作する必要がある場合に使用できます。

        パラメータ:
        writable - trueの場合は書込み操作を許可するようにアクセス権を設定し、falseの場合は書込み操作を許可しないように設定する
        ownerOnly - trueの場合、書込み権は所有者の書込み権だけに適用され、そうでない場合は、全員に適用される。 ベースとなるファイル・システムで所有者とそれ以外の書込み権を区別できない場合は、この値に関係なく、アクセス権は全員に適用される。
        戻り値:
        操作が成功した場合はtrue ユーザーがこの抽象パス名のアクセス権を変更するアクセス権を持たない場合、操作は失敗する。
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkWrite(java.lang.String)メソッドが指定されたファイルへの書き込みアクセスを拒否した場合
        導入されたバージョン:
        1.6
      • setWritable

        public boolean setWritable​(boolean writable)
        この抽象パス名に所有者の書込み権を設定する簡易メソッドです。 一部のプラットフォームでは、書込み操作を許可しないファイルの変更を許可する特別な権限を使用してJava仮想マシンを起動できる場合があります。

        このメソッドをfile.setWritable(arg)の形式で呼び出した場合、次の呼び出しと同じ結果が得られます。

        
             file.setWritable(arg, true)
         

        パラメータ:
        writable - trueの場合は書込み操作を許可するようにアクセス権を設定し、falseの場合は書込み操作を許可しないように設定する
        戻り値:
        操作が成功した場合はtrue ユーザーがこの抽象パス名のアクセス権を変更するアクセス権を持たない場合、操作は失敗する。
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkWrite(java.lang.String)メソッドがファイルへの書き込みアクセスを拒否した場合
        導入されたバージョン:
        1.6
      • setReadable

        public boolean setReadable​(boolean readable,
                                   boolean ownerOnly)
        この抽象パス名に所有者または全員の読取り権を設定します。 一部のプラットフォームでは、読取り不可としてマークされたファイルの読取りを許可する特別な権限を使用してJava仮想マシンを起動できる場合があります。

        Filesクラスは、ファイル・アクセス権を含むファイル属性を操作するメソッドを定義します。 これは、ファイル・アクセス権をより細かく操作する必要がある場合に使用できます。

        パラメータ:
        readable - trueの場合は読取り操作を許可するようにアクセス権を設定し、falseの場合は読取り操作を許可しないように設定する
        ownerOnly - trueの場合、読取り権は所有者の読取り権だけに適用され、そうでない場合は、全員に適用される。 ベースとなるファイル・システムで所有者とそれ以外の読取り権を区別できない場合、この値に関係なく、アクセス権は全員に適用される。
        戻り値:
        操作が成功した場合はtrue ユーザーがこの抽象パス名のアクセス権を変更するアクセス権を持たない場合、操作は失敗する。 readablefalseで、ベースとなるファイル・システムが読取りアクセス権を実装していない場合、操作は失敗する。
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkWrite(java.lang.String)メソッドがファイルへの書き込みアクセスを拒否した場合
        導入されたバージョン:
        1.6
      • setReadable

        public boolean setReadable​(boolean readable)
        この抽象パス名に所有者の読取り権を設定する簡易メソッドです。 一部のプラットフォームでは、読取り不可としてマークされたファイルの読取りを許可する特別な権限を使用してJava仮想マシンを起動できる場合があります。

        このメソッドをfile.setReadable(arg)の形式で呼び出した場合、次の呼び出しと同じ結果が得られます。

        
             file.setReadable(arg, true)
         

        パラメータ:
        readable - trueの場合は読取り操作を許可するようにアクセス権を設定し、falseの場合は読取り操作を許可しないように設定する
        戻り値:
        操作が成功した場合はtrue ユーザーがこの抽象パス名のアクセス権を変更するアクセス権を持たない場合、操作は失敗する。 readablefalseで、ベースとなるファイル・システムが読取りアクセス権を実装していない場合、操作は失敗する。
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkWrite(java.lang.String)メソッドがファイルへの書き込みアクセスを拒否した場合
        導入されたバージョン:
        1.6
      • setExecutable

        public boolean setExecutable​(boolean executable,
                                     boolean ownerOnly)
        この抽象パス名に所有者または全員の実行権を設定します。 一部のプラットフォームでは、実行可能としてマークされていないファイルの実行を許可する特別な権限を使用してJava仮想マシンを起動できる場合があります。

        Filesクラスは、ファイル・アクセス権を含むファイル属性を操作するメソッドを定義します。 これは、ファイル・アクセス権をより細かく操作する必要がある場合に使用できます。

        パラメータ:
        executable - trueの場合は実行操作を許可するようにアクセス権を設定し、falseの場合は実行操作を許可しないように設定する
        ownerOnly - trueの場合、実行権は所有者の実行権だけに適用され、そうでない場合は、全員に適用される。 ベースとなるファイル・システムで所有者とそれ以外の実行権を区別できない場合は、この値に関係なく、アクセス権は全員に適用される。
        戻り値:
        操作が成功した場合はtrue ユーザーがこの抽象パス名のアクセス権を変更するアクセス権を持たない場合、操作は失敗する。 executablefalseで、ベースとなるファイル・システムが実行権を実装していない場合、操作は失敗する。
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkWrite(java.lang.String)メソッドがファイルへの書き込みアクセスを拒否した場合
        導入されたバージョン:
        1.6
      • setExecutable

        public boolean setExecutable​(boolean executable)
        この抽象パス名に所有者の実行権を設定する簡易メソッドです。 一部のプラットフォームでは、実行可能としてマークされていないファイルの実行を許可する特別な権限を使用してJava仮想マシンを起動できる場合があります。

        このメソッドをfile.setExcutable(arg)の形式で呼び出した場合、次の呼び出しと同じ結果が得られます。

        
             file.setExecutable(arg, true)
         

        パラメータ:
        executable - trueの場合は実行操作を許可するようにアクセス権を設定し、falseの場合は実行操作を許可しないように設定する
        戻り値:
        操作が成功した場合はtrue ユーザーがこの抽象パス名のアクセス権を変更するアクセス権を持たない場合、操作は失敗する。 executablefalseで、ベースとなるファイル・システムが実行権を実装していない場合、操作は失敗する。
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkWrite(java.lang.String)メソッドがファイルへの書き込みアクセスを拒否した場合
        導入されたバージョン:
        1.6
      • canExecute

        public boolean canExecute()
        この抽象パス名が示すファイルをアプリケーションが実行できるかどうかを判定します。 一部のプラットフォームでは、実行可能としてマークされていないファイルの実行を許可する特別な権限を使用してJava仮想マシンを起動できる場合があります。 その結果、このメソッドはファイルに実行権がない場合でもtrueを返す可能性があります。
        戻り値:
        この抽象パス名が存在し、さらにアプリケーションがそのファイルを実行できる場合はtrue
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkExec(java.lang.String)メソッドがファイルへの実行アクセスを拒否した場合
        導入されたバージョン:
        1.6
      • listRoots

        public static File[] listRoots()
        有効なファイル・システムのルートをリスト表示します。

        特定のJavaプラットフォームは、ゼロまたは1つ以上の階層的に編成されたファイル・システムをサポートします。 各ファイル・システムには、そのファイル・システムのほかのすべてのファイルに到達できるrootディレクトリがあります。 たとえばWindowsプラットフォームには、アクティブなドライブごとにルート・ディレクトリがあります。UNIXプラットフォームのルート・ディレクトリは、"/"の1つだけです。 一連の有効なファイル・システムのルートは、リムーバブル・メディアの挿入と取出し、および物理ディスク・ドライブまたは仮想ディスク・ドライブの切断またはアンマウントなどの、さまざまなシステム・レベルの操作に影響を受けます。

        このメソッドは、有効なファイル・システムのルートのルート・ディレクトリを示すFileオブジェクトの配列を返します。 ローカル・マシンに物理的に存在するファイルの正規のパス名は、必ずこのメソッドで返されるルートから始まります。

        ほかのマシンに存在し、リモート・ファイル・システム・プロトコル(SMBまたはNFSなど)を介してアクセスできるファイルの正規のパス名は、このメソッドで返されたルートから始まっても、始まらなくてもかまいません。 リモート・ファイルのパス名がローカル・ファイルのパス名と構文上区別できない場合、それはこのメソッドで返されたルートから始まります。 このため、たとえばWindowsプラットフォームのマッピングされたネットワーク・ドライブのルート・ディレクトリを示すFileオブジェクトはこのメソッドで返されますが、UNCパス名を含むFileオブジェクトはこのメソッドで返されません。

        このクラスのほとんどのメソッドと違い、このメソッドはセキュリティ例外をスローしません。 セキュリティ・マネージャが存在し、SecurityManager.checkRead(String)メソッドが特定のルート・ディレクトリへの読取りアクセスを拒否する場合、そのディレクトリは結果に現れません。

        戻り値:
        有効なファイル・システムのルートを示すFileオブジェクトの配列。一連のルートが判別できない場合はnull 配列は、ファイル・システムのルートがない場合は空になる。
        導入されたバージョン:
        1.2
        関連項目:
        FileStore
      • getTotalSpace

        public long getTotalSpace()
        この抽象パス名で指定されるパーティションのサイズを返します。
        戻り値:
        パーティションのサイズ(バイト単位)。この抽象パス名がパーティションを指定しない場合は0L
        例外:
        SecurityException - セキュリティ・マネージャがインストールされていて、それがRuntimePermission(getFileSystemAttributes)を拒否した場合、またはそのSecurityManager.checkRead(String)メソッドがこの抽象パス名で指定されたファイルへの読取りアクセスを拒否した場合
        導入されたバージョン:
        1.6
      • getFreeSpace

        public long getFreeSpace()
        この抽象パス名で指定されるパーティション内で未割当てのバイト数を返します。

        返される未割当てのバイト数は、1つの手掛かりであり、保証を示すものではありません。これらのバイトのほとんどまたは一部を使用できる可能性を示しています。 未割当てのバイト数は、この呼出しの直後は正確である可能性がもっとも高くなります。 外部の入出力操作(この仮想マシンの外部のシステムで行われる入出力操作を含む)によって不正確になります。 このメソッドによって、このファイル・システムへの書込み操作が成功する保証はありません。

        戻り値:
        パーティションで未割当てのバイト数。抽象パス名がパーティションを指定しない場合は0L この値は、getTotalSpace()で返されるファイル・システムの合計サイズ以下。
        例外:
        SecurityException - セキュリティ・マネージャがインストールされていて、それがRuntimePermission(getFileSystemAttributes)を拒否した場合、またはそのSecurityManager.checkRead(String)メソッドがこの抽象パス名で指定されたファイルへの読取りアクセスを拒否した場合
        導入されたバージョン:
        1.6
      • getUsableSpace

        public long getUsableSpace()
        この抽象パス名で指定されるパーティション上で、この仮想マシンが利用できるバイト数を返します。 可能であれば、このメソッドは書込み権やその他のオペレーティング・システム制約を確認します。そのため、実際に書き込むことができる新しいデータの量について、通常はgetFreeSpace()を実行した場合よりも正確な推定量を返します。

        返される利用可能なバイト数は、確かなものではなく単なる手掛かりであり、これらのバイトのほとんどまたは一部を使用できます。 未割当てのバイト数は、この呼出しの直後は正確である可能性がもっとも高くなります。 外部の入出力操作(この仮想マシンの外部のシステムで行われる入出力操作を含む)によって不正確になります。 このメソッドによって、このファイル・システムへの書込み操作が成功する保証はありません。

        戻り値:
        パーティションで利用できるバイト数。抽象パス名がパーティションを指定しない場合は0L この情報を利用できないシステムの場合、このメソッドは、getFreeSpace()を呼び出すことと同じである。
        例外:
        SecurityException - セキュリティ・マネージャがインストールされていて、それがRuntimePermission(getFileSystemAttributes)を拒否した場合、またはそのSecurityManager.checkRead(String)メソッドがこの抽象パス名で指定されたファイルへの読取りアクセスを拒否した場合
        導入されたバージョン:
        1.6
      • createTempFile

        public static File createTempFile​(String prefix,
                                          String suffix,
                                          File directory)
                                   throws IOException

        指定されたディレクトリで新しい空のファイルを生成し、その名前には、指定された接頭辞および接尾辞の文字列が使用されます。 このメソッドが正常に復帰する場合、次のことが保証されます。

        1. 返された抽象パス名が示すファイルが存在するのは、このメソッドが呼び出されたあとである
        2. このメソッドまたはその派生メソッドのどれも仮想マシンの現在の呼出しでふたたび同じ抽象パス名を返さない。
        このメソッドは一部の一時ファイル機能だけを提供します。 このメソッドで作成したファイルを自動的に削除するには、deleteOnExit()メソッドを使用します。

        prefix引数の長さは3文字以上必要です。 接頭辞は、"hjb"または"mail"などの短くて意味のある文字列にしてください。 suffix引数はnullも指定でき、その場合、接尾辞".tmp"が使用されます。

        新しいファイルを生成するために、まず接頭辞および接尾辞がベースとなるプラットフォームの制限に合わせて調整されます。 接頭辞が長すぎる場合は、切り詰められますが、最初の3文字は常に保存されます。 接尾辞が長すぎる場合は、切り詰められますが、それがピリオド('.')で始まる場合、ピリオドおよびそのあとの最初の3文字は常に保存されます。 これらの調整が終わると、接頭辞、5つ以上の内部で生成された文字、および接尾辞を連結して新しいファイル名が生成されます。

        directory引数がnullの場合、システムに依存するデフォルトの一時ファイル・ディレクトリが使用されます。 デフォルトの一時ファイル・ディレクトリは、システム・プロパティjava.io.tmpdirで指定されます。 UNIXシステムの場合、このプロパティのデフォルト値は"/tmp"または"/var/tmp"、Microsoft Windowsシステムの場合は"C:\\WINNT\\TEMP"です。 ただし、Java仮想マシンを起動したときに、このシステム・プロパティに別の値が指定されることがあります。プログラムを使用してこのプロパティを変更しても、このメソッドが使用する一時ディレクトリを変更できるとはかぎりません。

        パラメータ:
        prefix - ファイル名を生成するために使用される接頭辞文字列。3文字以上の長さが必要である
        suffix - ファイル名を生成するために使用される接尾辞文字列。nullも指定でき、その場合は、接尾辞".tmp"が使用される
        directory - ファイルが生成されるディレクトリ。デフォルトの一時ファイル・ディレクトリが使用される場合はnull
        戻り値:
        新規作成された空のファイルを示す抽象パス名
        例外:
        IllegalArgumentException - prefix引数が3文字に満たない場合
        IOException - ファイルを生成できなかった場合
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkWrite(java.lang.String)メソッドがファイルの作成を許可しない場合
        導入されたバージョン:
        1.2
      • createTempFile

        public static File createTempFile​(String prefix,
                                          String suffix)
                                   throws IOException
        指定された接頭辞と接尾辞をファイル名の生成に使用して、デフォルトの一時ファイル・ディレクトリに空のファイルを生成します。 このメソッドを呼び出すことは、createTempFile(prefix, suffix, null)を呼び出すことと同じです。

        Files.createTempFileメソッドは、一時ファイル・ディレクトリに空のファイルを作成するための代替のメソッドです。 そのメソッド(Filesクラス)で作成したファイルは、このメソッド(Fileクラス)で作成したファイルよりアクセス権が制限される場合があるため、セキュリティ保護を必要とするアプリケーションにより適していることがあります。

        パラメータ:
        prefix - ファイル名を生成するために使用される接頭辞文字列。3文字以上の長さが必要である
        suffix - ファイル名を生成するために使用される接尾辞文字列。nullも指定でき、その場合は、接尾辞".tmp"が使用される
        戻り値:
        新規作成された空のファイルを示す抽象パス名
        例外:
        IllegalArgumentException - prefix引数が3文字に満たない場合
        IOException - ファイルを生成できなかった場合
        SecurityException - セキュリティ・マネージャが存在し、そのSecurityManager.checkWrite(java.lang.String)メソッドがファイルの作成を許可しない場合
        導入されたバージョン:
        1.2
        関連項目:
        Files.createTempDirectory(String,FileAttribute[])
      • compareTo

        public int compareTo​(File pathname)
        2つの抽象パス名を語彙的に比較します。 このメソッドが定義する順序はベースとなるシステムに依存します。 UNIXシステムの場合、アルファベットの大文字と小文字がパス名の比較で意味を持ちます。Microsoft Windowsシステムでは意味を持ちません。
        定義:
        compareTo 、インタフェース: Comparable<File>
        パラメータ:
        pathname - この抽象パス名と比較される抽象パス名
        戻り値:
        引数がこの抽象パス名と等しい場合は0。この抽象パス名が引数より語彙的に小さい場合は負の値。この抽象パス名が引数より語彙的に大きい場合は正の値
        導入されたバージョン:
        1.2
      • equals

        public boolean equals​(Object obj)
        この抽象パス名が指定されたオブジェクトと等しいかどうかを判定します。 引数がnullではなく、この抽象パス名と同じファイルまたはディレクトリを示す抽象パス名である場合にだけtrueを返します。 2つの抽象パス名が等しいかどうかはベースとなるシステムに依存します。 UNIXシステムの場合、アルファベットの大文字と小文字がパス名の比較で意味を持ちます。Microsoft Windowsシステムでは意味を持ちません。
        オーバーライド:
        equals 、クラス:  Object
        パラメータ:
        obj - この抽象パス名と比較されるオブジェクト
        戻り値:
        2つのオブジェクトが同じ場合はtrue、そうでない場合はfalse
        関連項目:
        Object.hashCode()HashMap
      • hashCode

        public int hashCode()
        この抽象パス名のハッシュ・コードを計算します。 抽象パス名が等しいかどうかは本質的にシステムに依存するので、それらのハッシュ・コードの計算も同じです。 UNIXシステムの場合、抽象パス名のハッシュ・コードは、そのパス名文字列のハッシュ・コードと10進数値1234321の排他的論理和と等しくなります。 Microsoft Windowsシステムの場合、ハッシュ・コードは、そのパス名文字列(小文字に変換されたもの)のハッシュ・コードと10進数値1234321の排他的論理和と等しくなります。 パス名文字列を小文字に変換する際、ロケールは考慮されません。
        オーバーライド:
        hashCode 、クラス:  Object
        戻り値:
        この抽象パス名のハッシュ・コード
        関連項目:
        Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
      • toString

        public String toString()
        この抽象パス名のパス名文字列を返します。 これは、getPath()メソッドによって返された文字列です。
        オーバーライド:
        toString 、クラス:  Object
        戻り値:
        この抽象パス名の文字列形式
      • toPath

        public Path toPath()
        この抽象パスから構築されたjava.nio.file.Pathオブジェクトを返します。 結果のPathdefault-filesystemに関連付けられています。

        このメソッドの最初の呼出しは、次の式を評価するために呼び出すのと同様に動作します。

         FileSystems.getDefault().getPath(this.getPath());
         
        このメソッドの後続呼出し時には、同じPathが返されます。

        この抽象パス名が空の抽象パス名である場合、このメソッドは、現在のユーザー・ディレクトリにアクセスするために使用できるPathを返します。

        戻り値:
        この抽象パスから生成されたPath
        例外:
        InvalidPathException - Pathオブジェクトを抽象パスから生成できない場合(FileSystem.getPathを参照)
        導入されたバージョン:
        1.7
        関連項目:
        Path.toFile()