|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Objectcom.docomostar.fs.Folder
public class 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()
の戻り値を用いることを推奨します。
コンストラクタの概要 | |
---|---|
protected |
Folder(StorageDevice storageDevice,
AccessToken accessToken,
String path)
アプリケーションは直接このクラスのインスタンスを生成することはできません。 |
メソッドの概要 | |
---|---|
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 |
コンストラクタの詳細 |
---|
protected Folder(StorageDevice storageDevice, AccessToken accessToken, String path)
メソッドの詳細 |
---|
public StorageDevice getStorageDevice()
このフォルダの取得元のストレージデバイス
インスタンスを取得します。
public AccessToken getAccessToken()
このフォルダへのアクセス権を取得します。
public String getPath()
このフォルダのパス名(絶対パス)を取得します。
public long getFreeSize() throws java.io.IOException
このフォルダの空き容量を取得します。
フォルダ単位で空き容量を制御できるようなファイルシステムの場合は、 このメソッドはそのフォルダの空き容量を返します。 ファイルシステム全体でしか空き容量を制御できないような場合は、 どのフォルダでも同じファイルシステム全体の空き容量を返します。
MediaNotFoundException
-
java.io.IOException
-
public boolean isFileAttributeSupported(Class clazz)
このフォルダ内のファイルでファイルの属性
がサポートされているかどうかを取得します。
引数に FileAttribute
インタフェースを実装したクラスのクラスオブジェクトを渡すと、
そのクラスのインスタンスが表すファイルの属性をサポートしているかどうかを返します。
例えば、暗号化をサポートしているかどうかを取得するには、
のようにします。
folder.isFileAttributeSupported(EncryptionAttribute.class);
フォルダ単位で引数で指定されたファイルの属性のサポート可否を制御できるようなファイルシステムの場合は、 このメソッドはそのフォルダでのサポート可否を返します。 ファイルシステム全体でしか引数で指定されたファイルの属性のサポート可否を制御できないような場合は、 どのフォルダでも同じサポート可否を返します。
clazz
- ファイルの属性を表すクラスのクラスオブジェクトを指定します。
NullPointerException
-
IllegalArgumentException
-
public File createFile(String fileName) throws java.io.IOException
ファイルを生成します。
を呼び出すのと同じです。
createFile(fileName, null)
なお、ファイルの削除は File.delete()
メソッドで行います。
fileName
- 生成するファイル名を指定します。
NullPointerException
-
FileNotAccessibleException
- FileNotAccessibleException
- FileNotAccessibleException
- MediaNotFoundException
-
FileSystemFullException
-
java.io.IOException
-
public File createFile(String fileName, FileAttribute[] attributes) throws java.io.IOException
ファイルを生成します。
ファイルを生成する際にファイルの属性を指定することができますが、
どのファイルの属性が有効かはストレージデバイスやメディアに依存します。
ファイルの属性が有効かどうかは isFileAttributeSupported(java.lang.Class)
メソッドで取得することができます。
引数 attributes に null が指定された場合も含めて、 明示的に引数で指定されなかったファイルの属性については、 原則として、ファイルシステムまたはフォルダにおけるデフォルトのファイル属性となります。 ただし、フォルダに設定されている属性の内容によっては、 一部の属性について、フォルダと同じものが設定されることもあります。
なお、ファイルの削除は File.delete()
メソッドで行います。
fileName
- 生成するファイル名を指定します。attributes
- 生成するファイルに付与するファイルの属性の配列を指定します。
null を指定すると、ファイルの属性を指定しないことを表します。
NullPointerException
-
FileNotAccessibleException
- NullPointerException
-
IllegalArgumentException
-
isFileAttributeSupported(Class)
で false
が返されるような)
ファイル属性が指定されている場合に発生します。
IllegalArgumentException
-
FileNotAccessibleException
- FileNotAccessibleException
- MediaNotFoundException
-
FileSystemFullException
-
java.io.IOException
-
public File[] getFiles() throws java.io.IOException
このフォルダに含まれる全てのファイルのインスタンスを取得します。
このメソッドを呼び出すたびに新たなインスタンスを生成して返すか、 それと
fileName
- 逕滓