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
を返す可能性があります。true
、そうでない場合はfalse
SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkRead(java.lang.String)
メソッドがファイルへの読取りアクセスを拒否した場合public boolean canWrite()
true
を返す可能性があります。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
を返す可能性があります。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, 2014, Oracle and/or its affiliates. All rights reserved.