クラスFileSystem
- すべての実装されたインタフェース:
Closeable,AutoCloseable
FileSystems.getDefaultメソッドを呼び出して取得されるデフォルトのファイル・システムは、Java仮想マシンからアクセス可能なファイル・システムへのアクセスを提供します。 FileSystemsクラスは、ほかの種類の(カスタム)ファイル・システムへのアクセスを提供するファイル・システムを作成するためのメソッドを定義します。
ファイル・システムは、いくつかの種類のオブジェクトのファクトリです。
getPathメソッドは、システムに依存するパス文字列を変換して、ファイルの検索とアクセスに使用できるPathオブジェクトを返します。getPathMatcherメソッドは、パスのマッチ操作を実行するPathMatcherの作成に使用されます。getFileStoresメソッドは、ベースとなるファイル・ストアを処理するイテレータを返します。getUserPrincipalLookupServiceメソッドは、ユーザーまたはグループを名前で検索するUserPrincipalLookupServiceを返します。newWatchServiceメソッドは、オブジェクトの変更およびイベントの監視に使用できるWatchServiceを作成します。
ファイル・システムはきわめて多種多様です。 あるケースでは、ファイル・システムは最上位のルート・ディレクトリを1つ持つ単一のファイル階層になります。 別のケースでは、いくつかの異なるファイル階層を保有し、それぞれの階層に独自の最上位のルート・ディレクトリがあります。 getRootDirectoriesメソッドを使用すると、ファイル・システム内のルート・ディレクトリを反復処理できます。 ファイル・システムは通常、ファイル用のストレージを提供する1つまたは複数のベースとなるファイル・ストアで構成されます。 これらのファイル・ストアは、サポートする機能や、ファイルに関連付けられたファイル属性またはmeta-dataでも異なる場合があります。
ファイル・システムは、作成時には開いていて、そのcloseメソッドを呼び出して閉じることができます。 いったん閉じたあとで、そのファイル・システム内のオブジェクトにアクセスしようとすると、ClosedFileSystemExceptionがスローされます。 デフォルト・プロバイダによって作成されたファイル・システムを閉じることはできません。
FileSystemは、ファイル・システムへの読取り専用または読み取り/書込みアクセスを提供できます。 ファイル・システムが読取り専用アクセスを提供するかどうかは、FileSystemの作成時に設定され、そのisReadOnlyメソッドを呼び出すことで確認できます。 読取り専用のファイル・システムに関連付けられたオブジェクトを使ってファイル・ストアへの書込みを試みると、ReadOnlyFileSystemExceptionがスローされます。
ファイル・システムは、複数の並行スレッドで安全に使用できます。 いつでもcloseメソッドを呼び出してファイル・システムを閉じることができますが、ファイル・システムが非同期クローズ可能であるかどうかはプロバイダ固有のものであるため、未指定です。 つまり、あるスレッドがファイル・システム内のオブジェクトにアクセスしているときに、別のスレッドがcloseメソッドを呼び出した場合、最初の操作が完了するまでそのメソッドはブロックされる必要があることがあります。 ファイル・システムを閉じると、ファイル・システムに関連付けられた開いているチャネル、監視サービス、およびその他のクローズ可能なオブジェクトがすべて閉じます。
- 導入されたバージョン:
- 1.7
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明abstract voidclose()このファイル・システムを閉じます。ベースとなるファイル・ストアを反復するためのオブジェクトを返します。abstract Path1つのパス文字列または、連結すると1つのパス文字列を形成する文字列のシーケンスを、Pathに変換します。abstract PathMatchergetPathMatcher(String syntaxAndPattern) 指定されたパターンを解釈することにより、PathオブジェクトのString表現に対するマッチ操作を実行するPathMatcherを返します。ルート・ディレクトリのパスを反復するためのオブジェクトを返します。abstract String文字列として表された名前区切り文字を返します。abstract UserPrincipalLookupServiceこのファイル・システムのUserPrincipalLookupServiceを返します(オプションの操作)。abstract booleanisOpen()このファイル・システムが開いているかどうかを判断します。abstract booleanこのファイル・システムが、ファイル・ストアに対する読取り専用アクセスのみを許可するかどうかを判断します。abstract WatchService新しいWatchServiceを構築します(オプションの操作)。abstract FileSystemProviderprovider()このファイル・システムの作成元プロバイダを返します。このFileSystemによってサポートされるファイル属性ビューの名前のセットを返します。
-
コンストラクタの詳細
-
FileSystem
protected FileSystem()このクラスの新しいインスタンスを初期化します。
-
-
メソッドの詳細
-
provider
-
close
public abstract void close() throws IOExceptionこのファイル・システムを閉じます。ファイル・システムが閉じたあとは、このクラスで定義されたメソッドによる、またはこのファイル・システムに関連付けられたオブジェクトに対する、ファイル・システムへの後続のすべてのアクセスで
ClosedFileSystemExceptionがスローされます。 ファイル・システムがすでに閉じている場合は、このメソッドを呼び出しても何の効果もありません。ファイル・システムを閉じると、このファイル・システムに関連付けられた開いている
チャネル、ディレクトリ・ストリーム、監視サービス、およびその他のクローズ可能なオブジェクトがすべて閉じます。デフォルトのファイル・システムを閉じることはできません。- 定義:
close、インタフェースAutoCloseable- 定義:
close、インタフェースCloseable- スロー:
IOException- 入出力エラーが発生した場合UnsupportedOperationException- デフォルトのファイル・システムの場合にスローされる
-
isOpen
public abstract boolean isOpen()このファイル・システムが開いているかどうかを判断します。デフォルト・プロバイダによって作成されたファイル・システムは常に開いています。
- 戻り値:
- このファイル・システムが開いている場合にかぎり
true
-
isReadOnly
public abstract boolean isReadOnly()このファイル・システムが、ファイル・ストアに対する読取り専用アクセスのみを許可するかどうかを判断します。- 戻り値:
- このファイル・システムが読取り専用アクセスを提供する場合にかぎり
true
-
getSeparator
public abstract String getSeparator()文字列として表された名前区切り文字を返します。名前区切り文字は、パス文字列内の名前を区切るために使用されます。 実装では複数の名前区切り文字をサポートしていることがありますが、その場合、このメソッドは実装固有のデフォルトの名前区切り文字を返します。 この区切り文字は、
toString()メソッドの呼出しによってパス文字列を作成するときに使用されます。デフォルト・プロバイダの場合、このメソッドは
File.separatorと同じ区切り文字を返します。- 戻り値:
- 名前区切り文字
-
getRootDirectories
ルート・ディレクトリのパスを反復するためのオブジェクトを返します。ファイル・システムは、いくつかの異なるファイル階層(それぞれに独自の最上位のルート・ディレクトリがある)で構成されている可能性のあるファイル・ストアへのアクセスを提供します。 返されるイテレータの各要素は、個別のファイル階層のルート・ディレクトリに対応します。 要素の順番は定義されていません。 ファイル階層は、ava仮想マシンの存続期間中に変更される場合があります。 たとえば、一部の実装では、リムーバブル・メディアの挿入によって独自の最上位ディレクトリを持つ新しいファイル階層が作成されることがあります。 ルート・ディレクトリにアクセスできるという保証はありません。
- 戻り値:
- ルート・ディレクトリを反復処理するオブジェクト
-
getFileStores
ベースとなるファイル・ストアを反復するためのオブジェクトを返します。返されるイテレータの要素は、このファイル・システムの
FileStoresです。 それらの要素の順番は定義されておらず、ファイル・ストアはJava仮想マシンの有効期間中に変更される可能性があります。 ファイル・ストアにアクセスできないなどの理由で入出力エラーが発生した場合、それはイテレータによって返されません。使用例: すべてのファイル・ストアの領域使用量を出力するとします。
for (FileStore store: FileSystems.getDefault().getFileStores()) { long total = store.getTotalSpace() / 1024; long used = (store.getTotalSpace() - store.getUnallocatedSpace()) / 1024; long avail = store.getUsableSpace() / 1024; System.out.format("%-20s %12d %12d %12d%n", store, total, used, avail); }- 戻り値:
- バッキング・ファイル・ストアを反復処理するオブジェクト
-
supportedFileAttributeViews
このFileSystemによってサポートされるファイル属性ビューの名前のセットを返します。BasicFileAttributeViewはサポートされる必要があるため、そのセットには少なくとも1つの要素「basic」が含まれています。supportsFileAttributeView(String)メソッドを使用すると、ベースとなるFileStoreが、ファイル属性ビューで識別されるファイル属性をサポートするかどうかを判定できます。- 戻り値:
- サポートされるファイル属性ビューの変更不可能な名前セット
-
getPath
1つのパス文字列または、連結すると1つのパス文字列を形成する文字列のシーケンスを、Pathに変換します。moreに要素が指定されていない場合は、firstパラメータの値は変換するパス文字列です。moreに1つ以上の要素が指定されている場合は、空でない各文字列(firstを含む)は名前要素のシーケンスであるとみなされ(Pathを参照)、結合されてパス文字列に形成されます。 文字列の結合方法の詳細はプロバイダ固有ですが、通常は名前区切り文字を区切り文字として使用して結合されます。 たとえば、名前区切り文字が"/"でgetPath("/foo","bar","gus")が呼び出された場合、パス文字列"/foo/bar/gus"はPathに変換されます。firstが空の文字列でmoreに空でない文字列が含まれない場合は、空のパスを示すPathが返されます。パス・オブジェクトの解析および変換は、本質的に実装に依存しています。 もっとも単純なケースでは、ファイル・ストアにとって有効な文字に変換できない文字がパス文字列に含まれている場合、そのパス文字列は拒否され、
InvalidPathExceptionがスローされます。 たとえば、UNIXシステムでは、NUL (\u0000)文字をパス内に指定することは許可されません。 実装では、どのファイル・ストアでも許可される名前よりも長い名前を含むパス文字列を拒否することもでき、複雑なパス構文を実装でサポートしている場合は、不正な形式のパス文字列を拒否することもできます。デフォルト・プロバイダの場合は、プラットフォームまたは仮想ファイル・システム・レベルのパスの定義に基づいてパス文字列が解析されます。 たとえば、オペレーティング・システムではファイル名に特定の文字を指定することを許可しない場合がありますが、ベースとなる特定のファイル・ストアで、正当な文字セットに対して異なる制限または追加の制限を設けることができます。
このメソッドは、パス文字列をパスに変換できない場合に
InvalidPathExceptionをスローします。 可能な場合、かつ適切な場合は、パス文字列が拒否される原因となった、pathパラメータ内の最初の位置を示すインデックス値でその例外が作成されます。- パラメータ:
first- パス文字列またはパス文字列の最初の部分more- 結合してパス文字列を形成するための追加文字列- 戻り値:
- 結果の
Path - スロー:
InvalidPathException- パス文字列を変換できない場合
-
getPathMatcher
public abstract PathMatcher getPathMatcher(String syntaxAndPattern) 指定されたパターンを解釈することにより、PathオブジェクトのString表現に対するマッチ操作を実行するPathMatcherを返します。syntaxAndPatternパラメータは、構文とパターンを識別し、次の形式をとります。
ここで、「構文」は空でない構文名、「パターン」は空と思われるパターン文字列、syntax:pattern
':'はそれ自体を表します。FileSystem実装では、「glob」および「regex」構文をサポートしますが、その他をサポートすることもできます。 構文コンポーネントの値は大文字小文字に関係なく比較されます。構文が「
glob」の場合、パスのString表現のマッチングには、正規表現に似ているが、より単純な構文を持つ制限されたパターン言語が使用されます。 たとえば、例 説明 *.java.javaで終わるファイル名を表すパスに一致します*.*ドットを含むファイル名に一致します *.{java,class}.javaまたは.classで終わるファイル名に一致しますfoo.?foo.と1文字の拡張子で始まるファイル名に一致します/home/*/*UNIXプラットフォームで /home/gus/dataに一致/home/**UNIXプラットフォーム上の /home/gusおよび/home/gus/dataに一致C:\\*Windowsプラットフォーム(バックスラッシュはエスケープされます。Java言語の文字列リテラルとして、パターンは "C:\\\\*"になります)のC:\fooおよびC:\barと一致globパターンの解釈には次のルールが使用されます。
**文字は、ディレクトリ境界を越える0個以上の文字に一致します。?文字は、厳密に1文字の名前コンポーネントに一致します。バックスラッシュ文字(
\)は、そうしない場合は特殊文字として解釈される文字をエスケープするために使用されます。 たとえば、式\\は1つのバックスラッシュに一致し、「\{」は左カッコに一致します。[ ]文字は、一連の文字のうち、1文字の名前コンポーネントに一致するカッコ式です。 たとえば、[abc]は"a"、"b"、または"c"に一致します。 ハイフン(-)は範囲を指定するために使用できるため、[a-z]は"a"から"z"まで(aとzを含む)に一致する範囲を指定します。 これらの形式は組み合わせることができるため、[abce-g]は"a"、"b"、"c"、"e"、"f"、または"g"に一致します。[のあとの文字が!の場合、それは否定に使用されるため、[!a-c]は"a"、"b"、または"c"を除くすべての文字に一致します。カッコ式の内側では、
*、?、および\文字はそれ自体に一致します。 (-)文字は、それがカッコ内の最初の文字である場合、または!のあとの最初の文字である場合(否定の場合)は、それ自体に一致します。{ }文字はサブパターンのグループであり、そのグループ内のサブパターンが一致すればグループは一致します。","文字はサブパターンを区切るために使用されます。 グループを入れ子にすることはできません。ファイル名の先頭のピリオド
/ドット文字は、一致操作では通常の文字として扱われます。 たとえば、globパターン"*"はファイル名".login"に一致します。Files.isHidden(java.nio.file.Path)メソッドを使用すると、ファイルが隠しファイルとみなされるかどうかを判定できます。ほかのすべての文字は実装に依存した方法でそれ自体に一致します。 これには、
名前区切り文字を表す文字も含まれます。ルート・コンポーネントのマッチングは、実装に大きく依存するため、未指定です。
構文が「
regex」である場合は、Patternクラスで定義されているように、パターン・コンポーネントは正規表現になります。globおよびregex構文のどちらの場合も、マッチングの詳細(マッチングに大文字小文字の区別があるかどうかなど)は実装に依存しているため、未指定です。
- パラメータ:
syntaxAndPattern- 構文とパターン- 戻り値:
- パスをそのパターンと照合するために使用できるパス照合プログラム
- スロー:
IllegalArgumentException- パラメータがsyntax: patternの形式を取らない場合PatternSyntaxException- パターンが無効な場合UnsupportedOperationException- パターンの構文が実装で認識されていない場合- 関連項目:
-
getUserPrincipalLookupService
public abstract UserPrincipalLookupService getUserPrincipalLookupService()このファイル・システムのUserPrincipalLookupServiceを返します(オプションの操作)。 結果となる検索サービスを使用すると、ユーザー名またはグループ名を検索できます。使用例: "joe"をファイルの所有者にするとします。
UserPrincipalLookupService lookupService = FileSystems.getDefault().getUserPrincipalLookupService(); Files.setOwner(path, lookupService.lookupPrincipalByName("joe"));- 戻り値:
- このファイル・システムの
UserPrincipalLookupService - スロー:
UnsupportedOperationException- このFileSystemが検索サービスを備えていない場合
-
newWatchService
public abstract WatchService newWatchService() throws IOException新しいWatchServiceを構築します(オプションの操作)。このメソッドは、登録されたオブジェクトの変更およびイベントの監視に使用できる新しい監視サービスを構築します。
- 戻り値:
- 新しい監視サービス
- スロー:
UnsupportedOperationException- このFileSystemがファイル・システム・オブジェクトの変更およびイベントの監視をサポートしない場合。 この例外は、デフォルト・プロバイダによって作成されたFileSystemsからはスローされません。IOException- 入出力エラーが発生した場合
-