|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Objectcom.nttdocomo.fs.Folder
フォルダを定義します。 このクラスのインスタンスはフォルダへのパス名を保持します。 各メソッドは、呼び出された時点でストレージデバイスのそのパス名のフォルダに対して各種の処理を行います。 なお、 "/" をパス区切り文字として扱います。
フォルダクラスでは以下の操作を行うことができます。
実装によっては、同じフォルダの実体(ストレージデバイス上の実際のフォルダ)を表す複数の Folder インスタンスが存在する場合があります。 その場合でも、Folder インスタンスへのメソッド呼び出しはどのインスタンスに対するものであっても同一フォルダへのアクセスとみなされます。 すなわち、例えばある Folder インスタンス f1 でファイルを新たに生成した場合は、 同じフォルダを表す異なる Folder インスタンス f2 に対してそのフォルダに含まれる全てのファイルのインスタンスを取得するメソッドを呼び出すと、 新たに生成したファイルも含む全てのファイルのインスタンスが返されます。
メディアが採用しているファイルシステムによっては、 ファイル名の大文字・小文字が同一視されるものとされないものがありますが、 いずれの場合でも、以下の表のそれぞれの行において、 次の条件が常に成立することが保証されています。
「コード A」欄のコードを実行した後に「コード B」欄のコードを実行した場合、
File
インスタンス f と g は、常に
同一ファイルに対するインスタンスである。
No. | コード A | コード B |
---|---|---|
1 | Folder folder = ...; // 任意のフォルダ // そのフォルダ上で新規作成可能な任意のファイル名 String fileName = ....; File f = folder.createFile(fileName, ...); |
// fileName と folder は左記と同じものとする。 File g = folder.getFile(fileName); |
2 | File f = ...; // 任意のファイル String path = f.getPath(); // 得られた絶対パスからファイル名を取り出す int sep = path.lastIndexOf('/'); String fileName = path.substring(sep + 1); |
// fileName は左記と同じ文字列とする。 // folder は左記のファイル f が存在するフォルダ Folder folder = ...; File g = folder.getFile(fileName); |
なお、この条件は、「コード A」欄のコードの実行と 「コードB」欄のコードの実行の間に、 一旦アプリケーションが終了したかどうかにかかわらず成立します。
上記に加えて、同一ファイルを表す任意の File
インスタンス
f
, g
について、
f.getPath().equals(g.getPath())
が常に true
となることが保証されています。
従って、大文字・小文字が同一視されるファイルシステムにおいて、
それぞれ、大文字・小文字だけが異なるファイル名を指定して
getFile(String)
などで File
インスタンスを生成した場合でも、getPath()
の戻り値は、
常に大文字・小文字も含めて同一文字列となります。
以下に、 ファイル名の大文字・小文字の扱い方が異なるファイルシステムにおいても、 正しく動作するコードを書くための留意点を列挙します。
createFile(String, FileAttribute[])
によって作成された File
オブジェクトの
File.getPath()
の値と、
作成時に指定したファイル名が、
同一文字列でない(大文字小文字が異なる)可能性があります。
File
インスタンスであれば、
常に File.getPath()
の戻り値は同一であることが保証されているため、
ユーザにファイル名を表示する場合には getPath()
の戻り値を用いることを推奨します。
メソッドの概要 | |
File |
createFile(String fileName)
ファイルを生成します。 |
File |
createFile(String fileName,
FileAttribute[] attributes)
ファイルを生成します。 |
AccessToken |
getAccessToken()
このフォルダへのアクセス権を取得します。 |
File |
getFile(String fileName)
ファイル名を指定してファイルのインスタンスを取得します。 |
File[] |
getFiles()
このフォルダに含まれる全てのファイルのインスタンスを取得します。 |
long |
getFreeSize()
このフォルダの空き容量を取得します。 |
String |
getPath()
このフォルダのパス名(絶対パス)を取得します。 |
StorageDevice |
getStorageDevice()
このフォルダの取得元の ストレージデバイス インスタンスを取得します。
|
boolean |
isFileAttributeSupported(Class clazz)
このフォルダ内のファイルで ファイルの属性 がサポートされているかどうかを取得します。
|
クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
メソッドの詳細 |
public StorageDevice getStorageDevice()
このフォルダの取得元のストレージデバイス
インスタンスを取得します。
public AccessToken getAccessToken()
このフォルダへのアクセス権を取得します。
public String getPath()
このフォルダのパス名(絶対パス)を取得します。
public long getFreeSize() throws java.io.IOException
このフォルダの空き容量を取得します。
フォルダ単位で空き容量を制御できるようなファイルシステムの場合は、 このメソッドはそのフォルダの空き容量を返します。 ファイルシステム全体でしか空き容量を制御できないような場合は、 どのフォルダでも同じファイルシステム全体の空き容量を返します。
MediaNotFoundException
- このフォルダが記録されているメディアが存在しないことを、
システムが検知した場合に発生します。
java.io.IOException
- I/O エラーが発生した場合に発生します。public boolean isFileAttributeSupported(Class clazz)
このフォルダ内のファイルでファイルの属性
がサポートされているかどうかを取得します。
引数に FileAttribute
インタフェースを実装したクラスのクラスオブジェクトを渡すと、
そのクラスのインスタンスが表すファイルの属性をサポートしているかどうかを返します。
例えば、暗号化をサポートしているかどうかを取得するには、
のようにします。
folder.isFileAttributeSupported(EncryptionAttribute.class);
フォルダ単位で引数で指定されたファイルの属性のサポート可否を制御できるようなファイルシステムの場合は、 このメソッドはそのフォルダでのサポート可否を返します。 ファイルシステム全体でしか引数で指定されたファイルの属性のサポート可否を制御できないような場合は、 どのフォルダでも同じサポート可否を返します。
clazz
- ファイルの属性を表すクラスのクラスオブジェクトを指定します。
NullPointerException
- 引数 clazz
に null が指定された場合に発生します。
IllegalArgumentException
- 引数 clazz
が FileAttribute
型のサブタイプを表していない場合に発生します。
public File createFile(String fileName) throws java.io.IOException
fileName
- 生成するファイル名を指定します。
NullPointerException
-
引数 fileName に null が指定された場合に発生します。
FileNotAccessibleException
-
引数 fileName で指定されたファイル名が、
システムで規定されている名前付け規則に違反している場合に発生します(ILLEGAL_NAME)。
FileNotAccessibleException
-
既にこのフォルダに同名ファイル・フォルダが存在しているため、
ファイルを新規作成できない場合に発生します(ALREADY_EXISTS)。
FileNotAccessibleException
-
上記以外の理由(ファイルシステム上のアクセス制限やメディアのライトプロテクト等)で、
指定されたファイルの生成が拒否された場合に発生します(ACCESS_DENIED)。
MediaNotFoundException
- このフォルダが記録されているメディアが存在しないことを、
システムが検知した場合に発生します。