インタフェースSecureDirectoryStream<T>
- 型パラメータ:
T- イテレータによって返される要素のタイプ
- すべてのスーパー・インタフェース:
AutoCloseable,Closeable,DirectoryStream<T>,Iterable<T>
DirectoryStreamです。 SecureDirectoryStreamは、競合のない方法でファイル・ツリーをトラバースしたり、ディレクトリを操作したりする必要のある、洗練されたアプリケーションまたはセキュリティ重視のアプリケーションで使用することを想定しています。 競合状態は、一連のファイル操作を単独で実行できない場合に発生することがあります。 このインタフェースで定義されている各ファイル操作では、相対パスを指定します。 ディレクトリが開いている間に攻撃者によって移動または置換されるかどうかに関係なく、ファイルへのアクセスはすべて、開いているディレクトリを基準に行われます。 SecureDirectoryStreamは、仮想作業ディレクトリとしても使用できます。
SecureDirectoryStreamには、ベースとなるオペレーティング・システムからの対応するサポートが必要です。 実装がこの機能をサポートしている場合、newDirectoryStreamメソッドによって返されるDirectoryStreamはSecureDirectoryStreamとなり、このインタフェースで定義されているメソッドを呼び出すために、その型にキャストされる必要があります。
- 導入されたバージョン:
- 1.7
-
ネストされたクラスのサマリー
インタフェースjava.nio.file.DirectoryStreamで宣言されたネストされたクラス/インタフェース
DirectoryStream.Filter<T> -
メソッドのサマリー
修飾子と型メソッド説明voiddeleteDirectory(T path) ディレクトリを削除します。voiddeleteFile(T path) ファイルを削除します。<V extends FileAttributeView>
VgetFileAttributeView(Class<V> type) このディレクトリのファイル属性にアクセスするための新しいファイル属性ビューを返します。<V extends FileAttributeView>
VgetFileAttributeView(T path, Class<V> type, LinkOption... options) このディレクトリ内のファイルのファイル属性にアクセスするための新しいファイル属性ビューを返します。voidmove(T srcpath, SecureDirectoryStream<T> targetdir, T targetpath) このディレクトリからほかのディレクトリにファイルを移動します。newByteChannel(T path, Set<? extends OpenOption> options, FileAttribute<?>... attrs) このディレクトリ内のファイルを開くか作成し、そのファイルにアクセスするためのシーク可能なバイト・チャネルを返します。newDirectoryStream(T path, LinkOption... options) 指定されたパスによって識別されるディレクトリを開き、そのディレクトリ内のエントリを反復処理するSecureDirectoryStreamを返します。インタフェースjava.nio.file.DirectoryStreamで宣言されたメソッド
iteratorインタフェースjava.lang.Iterableで宣言されたメソッド
forEach, spliterator
-
メソッドの詳細
-
newDirectoryStream
SecureDirectoryStream<T> newDirectoryStream(T path, LinkOption... options) throws IOException 指定されたパスによって識別されるディレクトリを開き、そのディレクトリ内のエントリを反復処理するSecureDirectoryStreamを返します。このメソッドは、
pathパラメータが絶対パスの場合は、newDirectoryStreamメソッドによって指定されたとおりに機能します。 パラメータが相対パスである場合、開くディレクトリはこの開いているディレクトリからの相対位置にあります。NOFOLLOW_LINKSオプションを使用すると、ファイルがシンボリック・リンクである場合に必ずこのメソッドが失敗するようにできます。新しいディレクトリ・ストリームは、作成後、その作成に使用されたディレクトリ・ストリームには依存しません。 このディレクトリ・ストリームを閉じても、新しく作成したディレクトリ・ストリームには何の影響もありません。
- パラメータ:
path- 開くディレクトリへのパスoptions- シンボリック・リンクの処理方法を示すオプション- 戻り値:
- 新しく開かれた
SecureDirectoryStreamオブジェクト - スロー:
ClosedDirectoryStreamException- ディレクトリ・ストリームが閉じられている場合NotDirectoryException- ファイルがディレクトリではないために開けなかった場合(オプションの固有例外)IOException- 入出力エラーが発生した場合
-
newByteChannel
SeekableByteChannel newByteChannel(T path, Set<? extends OpenOption> options, FileAttribute<?>... attrs) throws IOException このディレクトリ内のファイルを開くか作成し、そのファイルにアクセスするためのシーク可能なバイト・チャネルを返します。このメソッドは、
pathパラメータが絶対パスの場合は、Files.newByteChannelメソッドによって指定されたとおりに機能します。 パラメータが相対パスである場合、開くまたは作成するファイルはこの開いているディレクトリからの相対位置にあります。Files.newByteChannelメソッドで定義されているオプションのほかに、NOFOLLOW_LINKSオプションを使用して、ファイルがシンボリック・リンクである場合に必ずこのメソッドが失敗するようにすることもできます。チャネルは、作成後、その作成に使用されたディレクトリ・ストリームには依存しません。 このディレクトリ・ストリームを閉じても、チャネルには何の影響もありません。
- パラメータ:
path- 開くまたは作成するファイルのパスoptions- ファイルを開く方法を指定するオプションattrs- ファイルの作成時に原子的に設定される属性のオプションのリスト- 戻り値:
- シーク可能なバイト・チャネル
- スロー:
ClosedDirectoryStreamException- ディレクトリ・ストリームが閉じられている場合IllegalArgumentException- セットにオプションの無効な組み合わせが含まれる場合UnsupportedOperationException- 未サポートのオープン・オプションが指定された場合またはファイルの作成時に原子的に設定できない属性が配列に含まれる場合FileAlreadyExistsException- その名前のファイルがすでに存在する場合、およびCREATE_NEWオプションが指定された場合(オプションの固有例外)IOException- 入出力エラーが発生した場合
-
deleteFile
void deleteFile(T path) throws IOException ファイルを削除します。delete()メソッドとは異なり、このメソッドはファイルがディレクトリかどうかを判断するために最初にファイルを検査しません。 このメソッドによってディレクトリが削除されるかどうかはシステムに依存しているため、未指定です。 ファイルがシンボリック・リンクである場合、そのリンクの最終ターゲットではなく、そのリンク自体が削除されます。 パラメータが相対パスである場合、削除するファイルはこの開いているディレクトリからの相対位置にあります。- パラメータ:
path- 削除するファイルのパス- スロー:
ClosedDirectoryStreamException- ディレクトリ・ストリームが閉じられている場合NoSuchFileException- ファイルが存在しない場合(オプションの固有例外)IOException- 入出力エラーが発生した場合
-
deleteDirectory
void deleteDirectory(T path) throws IOException ディレクトリを削除します。delete()メソッドとは異なり、このメソッドはファイルがディレクトリかどうかを判断するために最初にファイルを検査しません。 このメソッドによってディレクトリ以外のものが削除されるかどうかはシステムに依存しているため、未指定です。 パラメータが相対パスである場合、削除するディレクトリはこの開いているディレクトリからの相対位置にあります。- パラメータ:
path- 削除するディレクトリのパス- スロー:
ClosedDirectoryStreamException- ディレクトリ・ストリームが閉じられている場合NoSuchFileException- ディレクトリが存在しない場合(オプションの固有例外)DirectoryNotEmptyException- ディレクトリが空でないために削除できなかった場合(オプションの固有例外)IOException- 入出力エラーが発生した場合
-
move
void move(T srcpath, SecureDirectoryStream<T> targetdir, T targetpath) throws IOException このディレクトリからほかのディレクトリにファイルを移動します。ATOMIC_MOVEオプションが指定されている場合、このメソッドはmoveメソッドと同様の動作をします。 つまり、このメソッドは原子的なファイル・システム操作としてファイルを移動します。srcpathパラメータが絶対パスである場合は、ソース・ファイルが検出されます。 パラメータが相対パスである場合、それはこの開いているディレクトリからの相対位置にあります。targetpathパラメータが絶対である場合は、ターゲット・ファイル(targetdirパラメータは無視される)が検出されます。 パラメータが相対パスである場合、それはtargetdirパラメータで識別される開いているディレクトリからの相対位置にあります。 いずれにしても、ターゲット・ファイルが存在する場合、それが置換されるか、このメソッドが失敗するかは実装に固有です。- パラメータ:
srcpath- 移動するファイルの名前targetdir- 宛先ディレクトリtargetpath- 宛先ディレクトリ内で、そのファイルに指定する名前- スロー:
ClosedDirectoryStreamException- このディレクトリ・ストリームまたはターゲット・ディレクトリ・ストリームが閉じている場合FileAlreadyExistsException- ファイルがターゲット・ディレクトリにすでに存在していて、置き換えられない場合(オプションの固有例外)AtomicMoveNotSupportedException- 原子的なファイル・システム操作としてファイルを移動できない場合IOException- 入出力エラーが発生した場合
-
getFileAttributeView
<V extends FileAttributeView> V getFileAttributeView(Class<V> type) このディレクトリのファイル属性にアクセスするための新しいファイル属性ビューを返します。結果となるファイル属性ビューを使用すると、この(開いている)ディレクトリの属性を読み取ったり更新したりできます。
typeパラメータは属性ビューの型を指定し、メソッドはサポートされている場合はその型のインスタンスを返します。 このメソッドを呼び出してBasicFileAttributeViewを取得すると、必ずこの開いているディレクトリにバインドされた、そのクラスのインスタンスが返されます。結果のファイル属性ビューの状態は、このディレクトリ・ストリームと密接な関係にあります。 ディレクトリ・ストリームがいったん
閉じられると、属性を読み取ったり更新したりするメソッドはすべてClosedDirectoryStreamExceptionをスローします。- 型パラメータ:
V-FileAttributeView型- パラメータ:
type- ファイル属性ビューに対応するClassオブジェクト- 戻り値:
- このディレクトリ・ストリームにバインドされた、指定された型の新しいファイル属性ビュー。その属性ビュー型が利用できない場合は
null
-
getFileAttributeView
<V extends FileAttributeView> V getFileAttributeView(T path, Class<V> type, LinkOption... options) このディレクトリ内のファイルのファイル属性にアクセスするための新しいファイル属性ビューを返します。結果となるファイル属性ビューを使用すると、このディレクトリ内のファイルの属性を読み取ったり更新したりできます。
typeパラメータは属性ビューの型を指定し、メソッドはサポートされている場合はその型のインスタンスを返します。 このメソッドを呼び出してBasicFileAttributeViewを取得すると、必ずそのディレクトリ内のファイルにバインドされた、そのクラスのインスタンスが返されます。結果のファイル属性ビューの状態は、このディレクトリ・ストリームと密接な関係にあります。 ディレクトリ・ストリームがいったん
閉じられると、属性を読み取ったり更新したりするメソッドはすべてClosedDirectoryStreamExceptionをスローします。 ファイル属性ビューの作成時にファイルが存在していなくてもかまいませんが、ファイルの属性を読み取ったり更新したりするメソッドは、それが呼び出されたときにファイルが存在しないと失敗します。- 型パラメータ:
V-FileAttributeView型- パラメータ:
path- ファイルのパスtype- ファイル属性ビューに対応するClassオブジェクトoptions- シンボリック・リンクの処理方法を示すオプション- 戻り値:
- このディレクトリ・ストリームにバインドされた、指定された型の新しいファイル属性ビュー。その属性ビュー型が利用できない場合は
null
-