public class File extends Object implements Serializable, Comparable<File>
ユーザーインタフェースおよびオペレーティングシステムは、システムに依存するパス名文字列でファイルおよびディレクトリを指定します。このクラスは、階層的なパス名の抽象的でシステムに依存しないビューを提供します。抽象パス名は 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 パス名を扱うために使用されます。
"/"
です。相対パス名は接頭辞を持ちません。ルートディレクトリを示す抽象パス名は、接頭辞 "/"
と空の名前シーケンスを持ちます。
":"
、および "\\"
の順序で構成されます。UNC パス名の接頭辞は "\\\\"
です。ホスト名および共有名は名前シーケンスのうちの最初の 2 つの名前になります。ドライブを指定しない相対パス名は接頭辞を持ちません。
このクラスのインスタンスは、実際のファイルシステムオブジェクト (ファイルやディレクトリなど) を示す場合も、示さない場合もあります。このようなオブジェクトを示す場合、そのオブジェクトはパーティション内に存在します。パーティションとは、ファイルシステム用の記憶域でオペレーティングシステム固有の部分です。1 つの記憶装置 (物理ディスクドライブ、フラッシュメモリー、CD-ROM など) に、複数のパーティションが含まれることがあります。オブジェクトが存在する場合は、このパス名の絶対形式の上位にあるものによって指定されるパーティションに存在します。
ファイルシステムでは、実際のファイルシステムオブジェクトに対する特定の操作 (読み取り、書き込み、実行など) への制約を実装することができます。これらの制約を総称してアクセス権と呼びます。ファイルシステムには、1 つのオブジェクトに対して複数の組のアクセス権が設定されていることがあります。たとえば、ある組をオブジェクトの所有者に適用し、別の組をほかのすべてのユーザーに適用することができます。オブジェクトのアクセス権が原因で、このクラスの一部のメソッドが失敗することがあります。
File
クラスのインスタンスは不変です。つまり、一度作成されると、File
オブジェクトで表される抽象パス名は変更されません。
java.nio.file
パッケージとの相互運用性 java.nio.file
パッケージは、ファイル、ファイル属性、およびファイルシステムにアクセスするための Java 仮想マシン用のインタフェースとクラスを定義します。この API は、java.io.File
クラスの多くの制限を克服するために使用できます。File
オブジェクトによって表される抽象パスを使用してファイルを見つける Path
を取得するには、toPath
メソッドを使用します。取得された Path
は、その後のファイル操作、ファイル属性、および入出力例外に対してより効率的で広範なアクセスを提供し、ファイルに対する操作が失敗したときにエラーを診断するために、Files
クラスで使用できます。
修飾子と型 | フィールドと説明 |
---|---|
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()
|
public static final char separatorChar
file.separator
の値の最初の文字を格納するように初期化されます。UNIX システムの場合、このフィールドの値は '/'
、Microsoft Windows システムの場合は '\\'
です。public static final String separator
separatorChar
です。public static final char pathSeparatorChar
path.separator
の値の最初の文字を格納するように初期化されます。この文字は、パスリストとして渡されるファイルのシーケンス中のファイル名を区切るために使用されます。UNIX システムの場合、この区切り文字は ':'
です。Microsoft Windows システムでは ';'
です。public static final String pathSeparator
pathSeparatorChar
です。public File(String pathname)
File
のインスタンスを生成します。指定された文字列が空の文字列の場合、結果は空の抽象パス名になります。pathname
- パス名文字列NullPointerException
- pathname
引数が null
である場合public File(String parent, String child)
File
のインスタンスを生成します。
parent
が null
の場合、新しい File
のインスタンスは、指定された child
パス名文字列で単一引数の File
コンストラクタを呼び出したように生成されます。
そうでない場合、parent
パス名文字列はディレクトリを示し、child
パス名文字列はディレクトリまたはファイルを示します。child
パス名文字列が絶対の場合、それはシステムに依存する方法で相対パス名に変換されます。parent
が空の文字列の場合、新しい File
のインスタンスは、child
を抽象パス名に変換し、その結果をシステムに依存するデフォルトディレクトリを基準に解決することで生成されます。そうでない場合、各パス名文字列は抽象パス名に変換され、子抽象パス名は親を基準に解決されます。
parent
- 親パス名文字列child
- 子パス名文字列NullPointerException
- child
が null
である場合public File(File parent, String child)
File
のインスタンスを生成します。
parent
が null
の場合、新しい File
のインスタンスは、指定された child
パス名文字列で単一引数の File
コンストラクタを呼び出したように生成されます。
そうでない場合、parent
抽象パス名はディレクトリを示し、child
パス名文字列はディレクトリまたはファイルを示します。child
パス名文字列が絶対の場合、それはシステムに依存する方法で相対パス名に変換されます。parent
が空の抽象パス名の場合、新しい File
のインスタンスは、child
を抽象パス名に変換し、その結果をシステムに依存するデフォルトディレクトリを基準に解決することで生成されます。そうでない場合、各パス名文字列は抽象パス名に変換され、子抽象パス名は親を基準に解決されます。
parent
- 親抽象パス名child
- 子パス名文字列NullPointerException
- child
が null
である場合public File(URI uri)
file: URI の形式はシステムに依存するため、このコンストラクタが行う変換もシステムに依存します。
指定された抽象パス名が f の場合は、次のように変換されます。
new File( f.この例の場合、元の抽象パス名、URI、および新しい抽象パス名は、同じ Java 仮想マシンの複数の呼び出しで作成する必要があります。ただし、あるオペレーティングシステムの仮想マシンで作成した file: URI を別のオペレーティングシステムの仮想マシンの抽象パス名に変換する場合、通常はこのように変換されません。toURI
()).equals( f.getAbsoluteFile
())
uri
- 階層型の絶対 URI。形式は、"file"、空でないパスコンポーネント、未定義の権限、クエリー、フラグメントコンポーネントと同等NullPointerException
- uri が null の場合IllegalArgumentException
- 上記のパラメータの前提条件が満たされていない場合toURI()
、URI
public String getName()
public String getParent()
null
を返します。
抽象パス名の親は、パス名の接頭辞 (存在する場合) およびパス名の名前シーケンスの各名前 (最後の名前を除く) で構成されます。名前シーケンスが空の場合、パス名は親ディレクトリを示しません。
null
public File getParentFile()
null
を返します。
抽象パス名の親は、パス名の接頭辞 (存在する場合) およびパス名の名前シーケンスの各名前 (最後の名前を除く) で構成されます。名前シーケンスが空の場合、パス名は親ディレクトリを示しません。
null
public String getPath()
default name-separator character
を使用して、名前シーケンスの名前を区切ります。public boolean isAbsolute()
"/"
の場合、パス名は絶対です。Microsoft Windows システムでは、接頭辞がドライブ指示子のあとに "\\"
が続く場合、または接頭辞が "\\\\"
の場合、パス名は絶対です。true
、そうでない場合は false
public String getAbsolutePath()
この抽象パス名がすでに絶対である場合、パス名文字列は
メソッドのように単純に返されます。この抽象パス名が空の抽象パス名の場合、現在のユーザーディレクトリ (システムプロパティー getPath()
user.dir
で示される) のパス名文字列が返されます。そうでない場合、このパス名はシステムに依存する方法で解決されます。UNIX システムの場合、相対パス名は現在のユーザーディレクトリを基準に解決することで絶対になります。Microsoft Windows システムの場合、相対パス名はパス名で示されたドライブの現在のディレクトリがある場合は、それを基準に解決することで絶対になります。ない場合は、現在のユーザーディレクトリを基準に解決されます。
SecurityException
- 必須のシステムプロパティーの値にアクセスできない場合。isAbsolute()
public File getAbsoluteFile()
new File(this.getAbsolutePath()
)
と同等です。SecurityException
- 必須のシステムプロパティーの値にアクセスできない場合。public String getCanonicalPath() throws IOException
正規のパス名は、一意の絶対パスです。正規のパス名の正確な定義は、システムに依存します。このメソッドはまず、必要に応じてパス名を絶対形式に変換します。結果は、getAbsolutePath()
メソッドを呼び出した場合と同じになります。次に、システムに依存する一意の形式に、そのパス名をマップします。このとき、通常は、パス名から "." や ".." などの冗長名を削除し、シンボリックリンクを解決し (UNIX プラットフォームの場合)、ドライブ名の大文字小文字を適切に変換し (Microsoft Windows プラットフォームの場合) ます。
既存のファイルまたはディレクトリを示す各パス名には、それぞれに固有の正規の形式があります。存在しないファイルまたはディレクトリを示す各パス名にも固有の正規の形式があります。存在しないファイルまたはディレクトリのパス名の正規の形式は、そのファイルまたはディレクトリが作成されたあとの同じパス名の正規の形式とは異なる場合があります。同じように、既存のファイルまたはディレクトリのパス名の正規の形式は、そのファイルまたはディレクトリが削除されたあとの同じパス名の正規の形式とは異なる場合があります。
IOException
- 入出力エラーが発生した場合。正規のパス名を構築するとファイルシステムのクエリーが必要になることがあるため、発生する可能性があるSecurityException
- 必須のシステムプロパティーの値にアクセスできない場合、またはセキュリティーマネージャーが存在し、その SecurityManager.checkRead(java.io.FileDescriptor)
メソッドがファイルへの読み取りアクセスを拒否した場合Path.toRealPath(java.nio.file.LinkOption...)
public File getCanonicalFile() throws IOException
new File(this.getCanonicalPath()
)
と同等です。IOException
- 入出力エラーが発生した場合。正規のパス名を構築するとファイルシステムのクエリーが必要になることがあるため、発生する可能性があるSecurityException
- 必須のシステムプロパティーの値にアクセスできない場合、またはセキュリティーマネージャーが存在し、その SecurityManager.checkRead(java.io.FileDescriptor)
メソッドがファイルへの読み取りアクセスを拒否した場合Path.toRealPath(java.nio.file.LinkOption...)
@Deprecated public URL toURL() throws MalformedURLException
toURI
メソッドを使用して URI に変換してから、URI.toURL
メソッドを使用して URL に変換することをお勧めします。file:
URL に変換します。URL の正確な形式はシステムに依存します。この抽象パス名が示すファイルがディレクトリであると判別できた場合、変換後の URL はスラッシュで終わります。MalformedURLException
- パスを URL として構文解析できない場合toURI()
, URI
, URI.toURL()
, URL
public URI toURI()
URI の正確な形式はシステムに依存します。この抽象パス名が示すファイルがディレクトリであると判別できた場合、変換後の URI はスラッシュで終わります。
指定された抽象パス名が f の場合は、次のように変換されます。
newこの例の場合、元の抽象パス名、URI、および新しい抽象パス名は、同じ Java 仮想マシンの複数の呼び出しで作成する必要があります。ただし、あるオペレーティングシステムの仮想マシンで作成した file: URI を別のオペレーティングシステムの仮想マシンの抽象パス名に変換する場合、抽象パス名はシステムに依存するため、通常はこのように変換されません。File
( f.toURI()).equals( f.getAbsoluteFile
())
この抽象パス名が UNC パス名を表している場合は、UNC のすべてのコンポーネント (サーバー名コンポーネントを含む) が URI
パスに変換されます。機関コンポーネントは未定義となり、null
として表されます。Path
クラスには、作成される URI
の機関コンポーネントのサーバー名を変換する toUri
メソッドが定義されています。toPath
メソッドを使用すると、この抽象パス名を表す Path
を取得できます。
SecurityException
- 必須のシステムプロパティーの値にアクセスできない場合。File(java.net.URI)
, URI
、URI.toURL()
public boolean canRead()
true
、そうでない場合は false
SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkRead(java.lang.String)
メソッドがファイルへの読み取りアクセスを拒否した場合public boolean canWrite()
true
、そうでない場合は false
。SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkWrite(java.lang.String)
メソッドがファイルへの書き込みアクセスを拒否した場合public boolean exists()
true
、そうでない場合は false
SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkRead(java.lang.String)
メソッドがファイルまたはディレクトリへの読み取りアクセスを拒否した場合public boolean isDirectory()
ファイルがディレクトリではないときに入出力例外を判別する必要がある場合、または同じファイルのいくつかの属性が同時に必要な場合は、Files.readAttributes
メソッドを使用できます。
true
、そうでない場合は false
SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkRead(java.lang.String)
メソッドがファイルへの読み取りアクセスを拒否した場合public boolean isFile()
ファイルが普通のファイルではないときに入出力例外を判別する必要がある場合、または同じファイルのいくつかの属性が同時に必要な場合は、Files.readAttributes
メソッドを使用できます。
true
、そうでない場合は false
SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkRead(java.lang.String)
メソッドがファイルへの読み取りアクセスを拒否した場合public boolean isHidden()
'.'
) で始まる場合に隠しファイルとみなされます。Microsoft Windows システムの場合、ファイルはファイルシステムでそのようにマークが設定されている場合に隠しファイルとみなされます。true
SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkRead(java.lang.String)
メソッドがファイルへの読み取りアクセスを拒否した場合public long lastModified()
0L
が返されたときに入出力例外を判別する必要がある場合、同じファイルのいくつかの属性が同時に必要な場合、または最後のアクセスまたは作成が行なわれた時間が必要な場合は、Files.readAttributes
を使用できます。
long
値。元期 (1970 年 1 月 1 日 0 時 0 分 0 秒 GMT) からミリ秒単位で測定。ファイルが存在しないか、入出力エラーが発生した場合は 0L
SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkRead(java.lang.String)
メソッドがファイルへの読み取りアクセスを拒否した場合public long length()
0L
が返されたときに入出力例外を判別する必要がある場合、または同じファイルのいくつかの属性が同時に必要な場合は、Files.readAttributes
メソッドを使用できます。
0L
。一部のオペレーティングシステムでは、デバイスやパイプなどのシステム依存エンティティーを示すパス名について 0L
を返すことがある。SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkRead(java.lang.String)
メソッドがファイルへの読み取りアクセスを拒否した場合public boolean createNewFile() throws IOException
注:このメソッドをファイルロックのために使用しないでください。結果となるプロトコルを確実に動作させることができません。代わりに、FileLock
機能を使用するようにしてください。
true
、示されたファイルがすでに存在する場合は false
IOException
- 入出力エラーが発生した場合SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkWrite(java.lang.String)
メソッドがファイルへの書き込みアクセスを拒否した場合public boolean delete()
Files
クラスには、ファイルを削除できないときに IOException
をスローする delete
メソッドが定義されています。これは、エラーの報告、およびファイルを削除できない原因の診断を行う場合に便利です。
true
、そうでない場合は false
SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkDelete(java.lang.String)
メソッドがファイルへの削除アクセスを拒否した場合public void deleteOnExit()
削除がいったん要求されると、その要求は取り消せません。そのため、このメソッドの使用には注意が必要です。
注:このメソッドをファイルロックのために使用しないでください。結果となるプロトコルを確実に動作させることができません。代わりに、FileLock
機能を使用するようにしてください。
SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkDelete(java.lang.String)
メソッドがファイルへの削除アクセスを拒否した場合delete()
public String[] list()
この抽象パス名がディレクトリを示さない場合、このメソッドは null
を返します。ディレクトリを示す場合は、文字列の配列が返されます。文字列は、ディレクトリ内の各ファイルまたはディレクトリごとに 1 つです。そのディレクトリ自体およびその親のディレクトリを示す名前は結果に含まれません。各文字列は、絶対パスではなくファイル名です。
結果の配列の名前文字列は特定の順序にはなりません。アルファベット順になるわけではありません。
Files
クラスは、ディレクトリを開き、そのディレクトリ内のファイルの名前に対し反復処理を行う newDirectoryStream
メソッドを定義することに注意してください。このメソッドは、非常に大きなディレクトリを操作するときに使用されるリソースがより少なく、リモートディレクトリを操作するときの応答がより迅速である場合があります。
null
を返す。SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkRead(String)
メソッドがディレクトリへの読み取りアクセスを拒否した場合public String[] list(FilenameFilter filter)
list()
メソッドと同じですが、返された配列内の文字列はフィルタの基準を満たす必要があります。指定された filter
が null
の場合、すべての名前が受け入れられます。そうでない場合、名前がフィルタの基準を満たすのは、フィルタの FilenameFilter.accept(File, String)
メソッドが、この抽象パス名およびそれが示すディレクトリ内のファイルまたはディレクトリの名前で呼び出されたときに true
が返される場合だけです。filter
- ファイル名フィルタfilter
によって受け入れられた、この抽象パス名が示すディレクトリ内のファイルおよびディレクトリを示す文字列の配列。配列は、ディレクトリが空の場合またはフィルタがどの名前も受け入れない場合は空になる。この抽象パス名がディレクトリを示さない場合、または入出力エラーが発生した場合は null
を返す。SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkRead(String)
メソッドがディレクトリへの読み取りアクセスを拒否した場合Files.newDirectoryStream(Path,String)
public File[] listFiles()
この抽象パス名がディレクトリを示さない場合、このメソッドは null
を返します。ディレクトリを示す場合は、File
オブジェクトの配列が返されます。File オブジェクトは、ディレクトリ内の各ファイルまたはディレクトリごとに 1 つです。ディレクトリ自体およびその親のディレクトリを示すパス名は結果に含まれません。結果として得られる各抽象パス名は、File(File, String)
コンストラクタを使用することにより、この抽象パス名から生成されます。そのため、このパス名が絶対の場合、結果として得られる各パス名は絶対です。このパス名が相対の場合、結果として得られる各パス名は同じディレクトリに対して相対です。
結果の配列の名前文字列は特定の順序にはなりません。アルファベット順になるわけではありません。
Files
クラスは、ディレクトリを開き、そのディレクトリ内のファイルの名前に対し反復処理を行う newDirectoryStream
メソッドを定義することに注意してください。これは、非常に大きなディレクトリを操作する場合に、使用されるリソースが少なくなる可能性があります。
null
を返す。SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkRead(String)
メソッドがディレクトリへの読み取りアクセスを拒否した場合public File[] listFiles(FilenameFilter filter)
listFiles()
メソッドと同じですが、返された配列内のパス名はフィルタの基準を満たす必要があります。指定された filter
が null
の場合、すべてのパス名が受け入れられます。そうでない場合、パス名がフィルタの基準を満たすのは、フィルタの FilenameFilter.accept(File, String)
メソッドが、この抽象パス名およびそれが示すディレクトリ内のファイルまたはディレクトリの名前で呼び出されたときに true
が返される場合だけです。filter
- ファイル名フィルタnull
を返す。SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkRead(String)
メソッドがディレクトリへの読み取りアクセスを拒否した場合Files.newDirectoryStream(Path,String)
public File[] listFiles(FileFilter filter)
listFiles()
メソッドと同じですが、返された配列内のパス名はフィルタの基準を満たす必要があります。指定された filter
が null
の場合、すべてのパス名が受け入れられます。そうでない場合、パス名がフィルタの基準を満たすのは、このフィルタの FileFilter.accept(File)
メソッドがパス名で呼び出されたときに true
の値が返される場合だけです。filter
- ファイルフィルタnull
を返す。SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkRead(String)
メソッドがディレクトリへの読み取りアクセスを拒否した場合Files.newDirectoryStream(Path,java.nio.file.DirectoryStream.Filter)
public boolean mkdir()
true
、そうでない場合は false
SecurityException
- セキュリティーマネージャーが存在する場合に、セキュリティーマネージャーの SecurityManager.checkWrite(java.lang.String)
メソッドが指定されたディレクトリの生成を許可しないときpublic boolean mkdirs()
true
、そうでない場合は false
SecurityException
- セキュリティーマネージャーが存在する場合に、セキュリティーマネージャーの SecurityManager.checkRead(java.lang.String)
メソッドが指定されたディレクトリおよび必要なすべての親ディレクトリの存在検証を許可しないとき、または SecurityManager.checkWrite(java.lang.String)
メソッドが指定されたディレクトリおよび必要なすべての親ディレクトリの生成を許可しないときpublic boolean renameTo(File dest)
このメソッドの動作の多くの部分は、本質的にプラットフォーム依存です。名前の変更操作では、ファイルをファイルシステム間で移動できないことがあります。この操作は不可分でないことがあります。また、移動先の抽象パス名を持つファイルがすでに存在する場合は、この操作が成功しない可能性があります。名前の変更操作が成功したことを確認するために、常に戻り値を調べるようにしてください。
Files
クラスには、プラットフォームに依存しない形式でファイルを移動または名前変更するためのmove
メソッドが定義されています。
dest
- 指定されたファイルの新しい抽象パス名true
、それ以外の場合は false
SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkWrite(java.lang.String)
メソッドが古いパス名または新しいパス名への書き込みアクセスを拒否した場合NullPointerException
- dest
パラメータが null
である場合public boolean setLastModified(long time)
すべてのプラットフォームは、秒単位に丸められたファイル変更時刻をサポートしますが、中にはもっと高い精度をサポートするものもあります。引数は、サポートされている精度に合わせて切り詰められます。操作が成功し、割り込む操作がファイル上で発生しない場合、
メソッドの次の呼び出しはこのメソッドに渡された lastModified()
time
引数 (切り詰められた場合がある) を返します。
time
- 新しい最終変更時間。元期 (1970 年 1 月 1 日 0 時 0 分 0 秒 GMT) からミリ秒単位で測定true
、それ以外の場合は false
IllegalArgumentException
- 引数が負の値の場合SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkWrite(java.lang.String)
メソッドが指定されたファイルへの書き込みアクセスを拒否した場合public boolean setReadOnly()
true
、それ以外の場合は false
SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkWrite(java.lang.String)
メソッドが指定されたファイルへの書き込みアクセスを拒否した場合public boolean setWritable(boolean writable, boolean ownerOnly)
Files
クラスは、ファイルアクセス権を含むファイル属性を操作するメソッドを定義します。これは、ファイルアクセス権をより細かく操作する必要がある場合に使用できます。
writable
- true
の場合は書き込み操作を許可するようにアクセス権を設定し、false
の場合は書き込み操作を許可しないように設定するownerOnly
- true
の場合、書き込み権は所有者の書き込み権だけに適用され、そうでない場合は、全員に適用される。ベースとなるファイルシステムで所有者とそれ以外の書き込み権を区別できない場合は、この値に関係なく、アクセス権は全員に適用される。true
。ユーザーがこの抽象パス名のアクセス権を変更するアクセス権を持たない場合、操作は失敗する。SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkWrite(java.lang.String)
メソッドが指定されたファイルへの書き込みアクセスを拒否した場合public boolean setWritable(boolean writable)
このメソッドを file.setWritable(arg) の形式で呼び出した場合、次の呼び出しと同じ結果が得られます。
file.setWritable(arg, true)
writable
- true
の場合は書き込み操作を許可するようにアクセス権を設定し、false
の場合は書き込み操作を許可しないように設定するtrue
。ユーザーがこの抽象パス名のアクセス権を変更するアクセス権を持たない場合、操作は失敗する。SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkWrite(java.lang.String)
メソッドがファイルへの書き込みアクセスを拒否した場合public boolean setReadable(boolean readable, boolean ownerOnly)
Files
クラスは、ファイルアクセス権を含むファイル属性を操作するメソッドを定義します。これは、ファイルアクセス権をより細かく操作する必要がある場合に使用できます。
readable
- true
の場合は読み取り操作を許可するようにアクセス権を設定し、false
の場合は読み取り操作を許可しないように設定するownerOnly
- true
の場合、読み取り権は所有者の読み取り権だけに適用され、そうでない場合は、全員に適用される。ベースとなるファイルシステムで所有者とそれ以外の読み取り権を区別できない場合、この値に関係なく、アクセス権は全員に適用される。true
。ユーザーがこの抽象パス名のアクセス権を変更するアクセス権を持たない場合、操作は失敗する。readable
が false
で、ベースとなるファイルシステムが読み取りアクセス権を実装していない場合、操作は失敗する。SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkWrite(java.lang.String)
メソッドがファイルへの書き込みアクセスを拒否した場合public boolean setReadable(boolean readable)
このメソッドを file.setReadable(arg) の形式で呼び出した場合、次の呼び出しと同じ結果が得られます。
file.setReadable(arg, true)
readable
- true
の場合は読み取り操作を許可するようにアクセス権を設定し、false
の場合は読み取り操作を許可しないように設定するtrue
。ユーザーがこの抽象パス名のアクセス権を変更するアクセス権を持たない場合、操作は失敗する。readable
が false
で、ベースとなるファイルシステムが読み取りアクセス権を実装していない場合、操作は失敗する。SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkWrite(java.lang.String)
メソッドがファイルへの書き込みアクセスを拒否した場合public boolean setExecutable(boolean executable, boolean ownerOnly)
Files
クラスは、ファイルアクセス権を含むファイル属性を操作するメソッドを定義します。これは、ファイルアクセス権をより細かく操作する必要がある場合に使用できます。
executable
- true
の場合は実行操作を許可するようにアクセス権を設定し、false
の場合は実行操作を許可しないように設定するownerOnly
- true
の場合、実行権は所有者の実行権だけに適用され、そうでない場合は、全員に適用される。ベースとなるファイルシステムで所有者とそれ以外の実行権を区別できない場合は、この値に関係なく、アクセス権は全員に適用される。true
。ユーザーがこの抽象パス名のアクセス権を変更するアクセス権を持たない場合、操作は失敗する。executable
が false
で、ベースとなるファイルシステムが実行権を実装していない場合、操作は失敗する。SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkWrite(java.lang.String)
メソッドがファイルへの書き込みアクセスを拒否した場合public boolean setExecutable(boolean executable)
このメソッドを file.setExcutable(arg) の形式で呼び出した場合、次の呼び出しと同じ結果が得られます。
file.setExecutable(arg, true)
executable
- true
の場合は実行操作を許可するようにアクセス権を設定し、false
の場合は実行操作を許可しないように設定するtrue
。ユーザーがこの抽象パス名のアクセス権を変更するアクセス権を持たない場合、操作は失敗する。executable
が false
で、ベースとなるファイルシステムが実行権を実装していない場合、操作は失敗する。SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkWrite(java.lang.String)
メソッドがファイルへの書き込みアクセスを拒否した場合public boolean canExecute()
true
SecurityException
- セキュリティーマネージャーが存在し、その SecurityManager.checkExec(java.lang.String)
メソッドがファイルへの実行アクセスを拒否した場合public static File[] listRoots()
特定の Java プラットフォームは、ゼロまたは 1 つ以上の階層的に編成されたファイルシステムをサポートします。各ファイルシステムには、そのファイルシステムのほかのすべてのファイルに到達できる root
ディレクトリがあります。たとえば Windows プラットフォームには、アクティブなドライブごとにルートディレクトリがあります。UNIX プラットフォームのルートディレクトリは、"/"
の 1 つだけです。一連の有効なファイルシステムのルートは、リムーバブルメディアの挿入と取り出し、および物理ディスクドライブまたは仮想ディスクドライブの切断またはアンマウントなどの、さまざまなシステムレベルの操作に影響を受けます。
このメソッドは、有効なファイルシステムのルートのルートディレクトリを示す File
オブジェクトの配列を返します。ローカルマシンに物理的に存在するファイルの正規のパス名は、必ずこのメソッドで返されるルートから始まります。
ほかのマシンに存在し、リモートファイルシステムプロトコル (SMB または NFS など) を介してアクセスできるファイルの正規のパス名は、このメソッドで返されたルートから始まっても、始まらなくてもかまいません。リモートファイルのパス名がローカルファイルのパス名と構文上区別できない場合、それはこのメソッドで返されたルートから始まります。このため、たとえば Windows プラットフォームのマッピングされたネットワークドライブのルートディレクトリを示す File
オブジェクトはこのメソッドで返されますが、UNC パス名を含む File
オブジェクトはこのメソッドで返されません。
このクラスのほとんどのメソッドと違い、このメソッドはセキュリティー例外をスローしません。セキュリティーマネージャーが存在し、SecurityManager.checkRead(String)
メソッドが特定のルートディレクトリへの読み取りアクセスを拒否する場合、そのディレクトリは結果に現れません。
File
オブジェクトの配列。一連のルートが判別できない場合は null
。配列は、ファイルシステムのルートがない場合は空になる。FileStore
public long getTotalSpace()
SecurityException
- セキュリティーマネージャーがインストールされていて、それが RuntimePermission
(「getFileSystemAttributes」) を拒否した場合、またはその SecurityManager.checkRead(String)
メソッドがこの抽象パス名で指定されたファイルへの読み取りアクセスを拒否した場合public long getFreeSpace()
返される未割り当てのバイト数は、1 つの手掛かりであり、保証を示すものではありません。これらのバイトのほとんどまたは一部を使用できる可能性を示しています。未割り当てのバイト数は、この呼び出しの直後は正確である可能性がもっとも高くなります。外部の入出力操作 (この仮想マシンの外部のシステムで行われる入出力操作を含む) によって不正確になります。このメソッドによって、このファイルシステムへの書き込み操作が成功する保証はありません。
getTotalSpace()
で返されるファイルシステムの合計サイズ以下。SecurityException
- セキュリティーマネージャーがインストールされていて、それが RuntimePermission
(「getFileSystemAttributes」) を拒否した場合、またはその SecurityManager.checkRead(String)
メソッドがこの抽象パス名で指定されたファイルへの読み取りアクセスを拒否した場合public long getUsableSpace()
getFreeSpace()
を実行した場合よりも正確な推定量を返します。
返される利用可能なバイト数は、確かなものではなく単なる手掛かりであり、これらのバイトのほとんどまたは一部を使用できます。未割り当てのバイト数は、この呼び出しの直後は正確である可能性がもっとも高くなります。外部の入出力操作 (この仮想マシンの外部のシステムで行われる入出力操作を含む) によって不正確になります。このメソッドによって、このファイルシステムへの書き込み操作が成功する保証はありません。
getFreeSpace()
を呼び出すことと同じである。SecurityException
- セキュリティーマネージャーがインストールされていて、それが RuntimePermission
(「getFileSystemAttributes」) を拒否した場合、またはその SecurityManager.checkRead(String)
メソッドがこの抽象パス名で指定されたファイルへの読み取りアクセスを拒否した場合public static File createTempFile(String prefix, String suffix, File directory) throws IOException
指定されたディレクトリで新しい空のファイルを生成し、その名前には、指定された接頭辞および接尾辞の文字列が使用されます。このメソッドが正常に復帰する場合、次のことが保証されます。
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)
メソッドがファイルの生成を許可しない場合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)
メソッドがファイルの生成を許可しない場合Files.createTempDirectory(String,FileAttribute[])
public int compareTo(File pathname)
compareTo
、インタフェース: Comparable<File>
pathname
- この抽象パス名と比較される抽象パス名public boolean equals(Object obj)
null
ではなく、この抽象パス名と同じファイルまたはディレクトリを示す抽象パス名である場合にだけ true
を返します。2 つの抽象パス名が等しいかどうかはベースとなるシステムに依存します。UNIX システムの場合、アルファベットの大文字と小文字がパス名の比較で意味を持ちます。Microsoft Windows システムでは意味を持ちません。equals
、クラス: Object
obj
- この抽象パス名と比較されるオブジェクトtrue
、そうでない場合は false
Object.hashCode()
, HashMap
public int hashCode()
1234321
の排他的論理和と等しくなります。Microsoft Windows システムの場合、ハッシュコードは、そのパス名文字列 (小文字に変換されたもの) のハッシュコードと 10 進数値 1234321
の排他的論理和と等しくなります。パス名文字列を小文字に変換する際、ロケールは考慮されません。hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public Path toPath()
java.nio.file.Path
オブジェクトを返します。結果の Path
は default-filesystem
に関連付けられています。
このメソッドの最初の呼び出しは、次の式を評価するために呼び出すのと同様に動作します。
このメソッドの後続呼び出し時には、同じFileSystems.getDefault
().getPath
(this.getPath
());
Path
が返されます。
この抽象パス名が空の抽象パス名である場合、このメソッドは、現在のユーザーディレクトリにアクセスするために使用できる Path
を返します。
Path
InvalidPathException
- Path
オブジェクトを抽象パスから生成できない場合 (FileSystem.getPath
を参照)Path.toFile()
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.