JavaTM 2 Platform
Standard Ed. 5.0

java.io
クラス File

java.lang.Object
  上位を拡張 java.io.File
すべての実装されたインタフェース:
Serializable, Comparable<File>

public class File
extends Object
implements Serializable, Comparable<File>

ファイルおよびディレクトリのパス名の抽象表現です。

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

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

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

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

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

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

導入されたバージョン:
JDK1.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 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()
          この抽象パス名の正規のパス名文字列を返します。
 String getName()
          この抽象パス名が示すファイルまたはディレクトリの名前を返します。
 String getParent()
          この抽象パス名の親のパス名文字列を返します。
 File getParentFile()
          この抽象パス名の親の抽象パス名を返します。
 String getPath()
          この抽象パス名をパス名文字列に変換します。
 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 setLastModified(long time)
          この抽象パス名が示すファイルまたはディレクトリが変更された時刻を設定します。
 boolean setReadOnly()
          この抽象パス名が示すファイルまたはディレクトリにマークを設定し、読み込みオペレーションだけが許可されるようにします。
 String toString()
          この抽象パス名のパス名文字列を返します。
 URI toURI()
          この抽象パス名を表す file: URI を構築します。
 URL toURL()
          この抽象パス名を file: URL に変換します。
 
クラス java.lang.Object から継承されたメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

separatorChar

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

関連項目:
System.getProperty(java.lang.String)

separator

public static final String separator
システムに依存するデフォルトの名前区切り文字です。便利なように文字列で表されます。この文字列は 1 文字、つまり separatorChar です。


pathSeparatorChar

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

関連項目:
System.getProperty(java.lang.String)

pathSeparator

public static final String pathSeparator
システムに依存するパス区切り文字です。便利なように文字列で表されます。この文字列は 1 文字つまり 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) メソッドがファイルの読み込みアクセスを許可しない場合
導入されたバージョン:
JDK1.1

getCanonicalFile

public File getCanonicalFile()
                      throws IOException
この抽象パス名の正規の形式を返します。new File(this.getCanonicalPath()()) と同等です。

戻り値:
この抽象パス名と同じファイルまたはディレクトリを示す正規パス名文字列
例外:
IOException - 入出力エラーが発生した場合。正規のパス名を構築することでファイルシステムのクエリーを要求すると発生する
SecurityException - 必須のシステムプロパティの値にアクセスできない場合、またはセキュリティマネージャが存在し、セキュリティマネージャの SecurityManager.checkRead(java.io.FileDescriptor) メソッドがファイルの読み込みアクセスを許可しない場合
導入されたバージョン:
1.2

toURL

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

使用上の注意: このメソッドでは、URL 内で使用できないエスケープ文字は自動的に変換できません。新しいコードの抽象パス名を URL に変換するには、まず toURI メソッドを使用して URI に変換してから、URI.toURL メソッドを使用して 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 を別のオペレーティングシステムの仮想マシンの抽象パス名に変換する場合、抽象パス名はシステムに依存するため、通常はこのように変換されません。

戻り値:
階層型の絶対 URI。形式は、"file"、パス、権限、クエリー、フラグメント。パスはこの抽象パス名。権限、クエリー、およびフラグメントは定義しない
導入されたバージョン:
1.4
関連項目:
File(java.net.URI), URI, URI.toURL()

canRead

public boolean canRead()
この抽象パス名が示すファイルをアプリケーションが読み込めるかどうかを判定します。

戻り値:
この抽象パス名が示すファイルが存在し、さらにアプリケーションがそれを読み込める場合だけ true、そうでない場合は false
例外:
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの SecurityManager.checkRead(java.lang.String) メソッドがファイルへの読み込みアクセスを許可しない場合

canWrite

public boolean canWrite()
この抽象パス名が示すファイルをアプリケーションが修正できるかどうかを判定します。

戻り値:
ファイルシステムにこの抽象パス名が示すファイルが実際にあり、さらにアプリケーションがそのファイルに書き込める場合は true、そうでない場合は false
例外:
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの SecurityManager.checkWrite(java.lang.String) メソッドがファイルへの書き込みアクセスを許可しない場合

exists

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

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

isDirectory

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

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

isFile

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

戻り値:
この抽象パス名が示すファイルが存在し、さらにそれが普通のファイルである場合は 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()
この抽象パス名が示すファイルが最後に変更された時刻を返します。

戻り値:
ファイルが最後に変更された時刻を表す long 値。エポック (1970 年 1 月 1 日 0 時 0 分 0 秒、グリニッジ標準時) からミリ秒単位で測定。ファイルが存在しないか、入出力エラーが発生した場合は 0L
例外:
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの SecurityManager.checkRead(java.lang.String) メソッドがファイルへの読み込みアクセスを許可しない場合

length

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

戻り値:
この抽象パス名が示すファイルの長さ (バイト単位)。ファイルが存在しない場合は 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()
この抽象パス名が示すファイルまたはディレクトリを削除します。このパス名がディレクトリを示す場合、そのディレクトリが削除されるためには空である必要があります。

戻り値:
ファイルまたはディレクトリが正常に削除された場合は 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 つです。そのディレクトリ自体およびその親のディレクトリを示す名前は結果に含まれません。各文字列は、絶対パスではなくファイル名です。

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

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

list

public String[] list(FilenameFilter filter)
この抽象パス名が示すディレクトリにあるファイルおよびディレクトリの中で、指定されたフィルタの基準を満たすものの文字列の配列を返します。このメソッドの動作は、list() メソッドと同じですが、返された配列の文字列はフィルタの基準を満たす必要があります。指定された filternull の場合、すべての名前が受け入れられます。そうでない場合、名前がフィルタの基準を満たすのは、フィルタの FilenameFilter.accept(java.io.File, java.lang.String) メソッドが、この抽象パス名およびそれが示すディレクトリ内のファイルまたはディレクトリの名前で呼び出されたときに true が返される場合だけです。

パラメータ:
filter - ファイル名フィルタ
戻り値:
指定された filter によって受け入れられた、この抽象パス名が示すディレクトリ内のファイルおよびディレクトリを示す文字列の配列。配列は、ディレクトリが空の場合またはフィルタがどの名前も受け入れない場合は空になる。この抽象パス名がディレクトリを示さない場合、または入出力エラーが発生した場合は null
例外:
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの SecurityManager.checkRead(java.lang.String) メソッドがディレクトリへの読み込みアクセスを許可しない場合

listFiles

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

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

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

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

listFiles

public File[] listFiles(FilenameFilter filter)
この抽象パス名が示すディレクトリにあるファイルおよびディレクトリの中で、指定されたフィルタの基準を満たすものの抽象パス名の配列を返します。このメソッドの動作は listFiles() メソッドと同じですが、返された配列内のパス名はフィルタの基準を満たす必要があります。指定された filternull の場合、すべてのパス名が受け入れられます。そうでない場合、パス名がフィルタの基準を満たすのは、この抽象パス名およびそれが示すディレクトリ内のファイルまたはディレクトリの名前で、フィルタの FilenameFilter.accept(java.io.File, java.lang.String) メソッドが呼び出されたときに true が返される場合だけです。

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

listFiles

public File[] listFiles(FileFilter filter)
この抽象パス名が示すディレクトリにあるファイルおよびディレクトリの中で、指定されたフィルタの基準を満たすものの抽象パス名の配列を返します。このメソッドの動作は listFiles() メソッドと同じですが、返された配列内のパス名はフィルタの基準を満たす必要があります。指定された filternull の場合、すべてのパス名が受け入れられます。そうでない場合、パス名がフィルタの基準を満たすのは、このフィルタの FileFilter.accept(java.io.File) メソッドがパス名で呼び出されたときに true の値が返される場合だけです。

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

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)
この抽象パス名が示すファイルの名前を変更します。

このメソッドの動作の側面の多くは、本質的にプラットフォームに依存します。つまり、名前変更操作によって、1 つのファイルシステムから別のファイルシステムにファイルが移動されない、名前変更操作が不可分ではない、移動先の抽象パス名を持つファイルがすでに存在すれば名前変更操作が成功しないなどの現象が起こる可能性があります。返される値は、名前変更操作が成功したかどうかを確認するため、必ずチェックしなければなりません。

パラメータ:
dest - 指定されたファイルの新しい抽象パス名
戻り値:
名前の変更が成功した場合は true、そうでない場合は false
例外:
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの SecurityManager.checkWrite(java.lang.String) メソッドが古いパス名と新しいパス名のどちらかへの書き込みアクセスを許可しない場合
NullPointerException - パラメータ destnull の場合

setLastModified

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

すべてのプラットフォームは、秒単位に丸められたファイル変更時刻をサポートしますが、中にはもっと高い精度をサポートするものもあります。引数は、サポートされている精度に合わせて切り詰められます。オペレーションが成功し、割り込むオペレーションがファイル上で起こらない場合、lastModified() メソッドの次の呼び出しはこのメソッドに渡された time 引数 (切り詰められた場合がある) を返します。

パラメータ:
time - 最新に変更された時刻。エポック (1970 年 1 月 1 日 0 時 0 分 0 秒、グリニッジ標準時) からミリ秒単位で測定
戻り値:
オペレーションが成功した場合は true、そうでない場合は false
例外:
IllegalArgumentException - 引数が負の値の場合
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの SecurityManager.checkWrite(java.lang.String) メソッドが指定されたファイルへの書き込みアクセスを許可しない場合
導入されたバージョン:
1.2

setReadOnly

public boolean setReadOnly()
この抽象パス名が示すファイルまたはディレクトリにマークを設定し、読み込みオペレーションだけが許可されるようにします。このメソッドを呼び出すと、ファイルまたはディレクトリはそれが削除されるか、書き込みアクセスを許可するようにマークを設定するまで変更されません。読み取り専用ファイルまたはディレクトリが削除できるかどうかは、背後のシステムに依存します。

戻り値:
オペレーションが成功した場合は true、そうでない場合は false
例外:
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの SecurityManager.checkWrite(java.lang.String) メソッドが指定されたファイルへの書き込みアクセスを許可しない場合
導入されたバージョン:
1.2

listRoots

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

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

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

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

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

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

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) を呼び出すのと同じです。

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

compareTo

public int compareTo(File pathname)
2 つの抽象パス名を語彙的に比較します。このメソッドが定義する順序は背後のシステムに依存します。UNIX システムの場合、パス名の比較でアルファベットの大文字と小文字が意味を持ちます。Microsoft Windows システムの場合は意味を持ちません。

定義:
インタフェース Comparable<File> 内の compareTo
パラメータ:
pathname - この抽象パス名と比較される抽象パス名
戻り値:
引数がこの抽象パス名と等しい場合は 0。この抽象パス名が引数より語彙的に小さい場合は負の値。この抽象パス名が引数より語彙的に大きい場合は正の値
導入されたバージョン:
1.2

equals

public boolean equals(Object obj)
この抽象パス名が指定されたオブジェクトと等しいかどうかを判定します。引数が null ではなく、この抽象パス名と同じファイルまたはディレクトリを示す抽象パス名である場合だけ true を返します。2 つの抽象パス名が等しいかどうかは背後のシステムに依存します。UNIX システムの場合、アルファベットの大文字と小文字がパス名の比較で意味を持ちます。Microsoft Windows システムでは意味を持ちません。

オーバーライド:
クラス Object 内の equals
パラメータ:
obj - この抽象パス名と比較されるオブジェクト
戻り値:
2 つのオブジェクトが同じ場合は true、そうでない場合は false
関連項目:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
この抽象パス名のハッシュコードを計算します。抽象パス名が等しいかどうかは本質的にシステムに依存するので、それらのハッシュコードの計算も同じです。UNIX システムの場合、抽象パス名のハッシュコードは、そのパス名文字列と 10 進数値 1234321 の排他的論理和と等しくなります。Microsoft Windows システムの場合、ハッシュコードは、そのパス名文字列 (小文字に変換されたもの) と 10 進数値 1234321 の排他的論理和と等しくなります。

オーバーライド:
クラス Object 内の hashCode
戻り値:
この抽象パス名のハッシュコード
関連項目:
Object.equals(java.lang.Object), Hashtable

toString

public String toString()
この抽象パス名のパス名文字列を返します。これは、getPath() メソッドで返された文字列です。

オーバーライド:
クラス Object 内の toString
戻り値:
この抽象パス名の文字列形式

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。