public interface PosixFileAttributeView extends BasicFileAttributeView, FileOwnerAttributeView
POSIXの標準ファミリを実装するオペレーティング・システムは、ファイルの所有者、グループ所有者、および関連するアクセス権を持つファイル・システムを一般的に使用します。このファイル属性ビューは、これらの属性への読み取りおよび書込みアクセスを提供します。
readAttributes
メソッドは、ファイルの属性を読み取るために使用されます。ファイルowner
は、UserPrincipal
によって表され、アクセス制御を目的としたファイル所有者の識別情報を示します。group-owner
は、GroupPrincipal
によって表され、グループ所有者の識別情報を示します。ここでのグループとは、そのグループのメンバーのアクセス権を特定するために管理目的で作成された識別情報です。
permissions
属性は、アクセス権のセットです。このファイル属性ビューは、PosixFilePermission
クラスで定義されている9つのアクセス権へのアクセスを提供します。これらの9つのアクセス権ビットは、ファイル所有者、グループ、およびその他(所有者とグループのメンバーを除く識別情報を意味する)の読み取り、書き込み、および実行アクセスを特定します。一部のオペレーティング・システムおよびファイル・システムでは、追加のアクセス権ビットを提供することがありますが、このリリースではそれらのほかのビットはこのクラスによって定義されていません。
使用例: ファイルの所有者とアクセス権を出力する必要があるとします。
Path file = ... PosixFileAttributes attrs = Files.getFileAttributeView(file, PosixFileAttributeView.class) .readAttributes(); System.out.format("%s %s%n", attrs.owner().getName(), PosixFilePermissions.toString(attrs.permissions()));
ファイル属性への動的アクセスが必要な場合、この属性ビューによってサポートされている属性はBasicFileAttributeView
およびFileOwnerAttributeView
で定義されているものと同じですが、そのほかに次の属性もサポートされています。
名前 型 "permissions" Set
<PosixFilePermission
>"group" GroupPrincipal
getAttribute
メソッドは、readAttributes()
メソッドを呼び出したかのように、これらの属性またはBasicFileAttributeView
によって定義される任意の属性を読み取るために使用できます。
setAttribute
メソッドは、BasicFileAttributeView
に定義される、ファイルの最終変更時間、最終アクセス時間、または作成時間属性を更新するために使用できます。さらにそれは、setPermissions
、setOwner
、およびsetGroup
メソッドをそれぞれ呼び出したかのように、アクセス権、所有権、またはグループ所有者を更新するためにも使用できます。
この属性ビューをサポートしている実装では、ファイルまたはディレクトリ作成時の初期アクセス権の設定もサポートする場合があります。初期アクセス権は、"posix:permissions"
というname
と、アクセス権のセットを示すvalue
を含むFileAttribute
として、createFile
またはcreateDirectory
メソッドに提供されます。次の例では、ファイルの作成時にasFileAttribute
メソッドを使用してFileAttribute
を構築します。
Path path = ... Set<PosixFilePermission> perms = EnumSet.of(OWNER_READ, OWNER_WRITE, OWNER_EXECUTE, GROUP_READ); Files.createFile(path, PosixFilePermissions.asFileAttribute(perms));
ファイルの作成時にアクセス権が設定された場合は、そのアクセス権の実際の値が属性オブジェクトの値と異なることがあります。その理由は実装に固有のものです。たとえば、UNIXシステムでは、新しく作成されたファイルのアクセス権ビットに影響を及ぼすumaskがプロセスに含まれています。アクセス権の設定が実装によってサポートされており、ベースとなるファイル・システムがアクセス権をサポートしている場合、実際のアクセス権の値は、createFile
またはcreateDirectory
メソッドに提供された属性の値に等しいか、それよりも小さくなる必要があります。つまり、そのファイルの安全性は要求されたものよりも高くなる可能性があります。
修飾子と型 | メソッドと説明 |
---|---|
String |
name()
属性ビューの名前を返します。
|
PosixFileAttributes |
readAttributes()
一括操作として基本ファイル属性を読み取ります。
|
void |
setGroup(GroupPrincipal group)
ファイルのグループ所有者を更新します。
|
void |
setPermissions(Set<PosixFilePermission> perms)
ファイル・アクセス権を更新します。
|
setTimes
getOwner, setOwner
String name()
"posix"
という名前です。name
、インタフェース: AttributeView
name
、インタフェース: BasicFileAttributeView
name
、インタフェース: FileOwnerAttributeView
PosixFileAttributes readAttributes() throws IOException
BasicFileAttributeView
ほかのファイル・システム操作に関して、すべてのファイル属性が原子的操作として読み取られるかどうかは実装固有です。
readAttributes
、インタフェース: BasicFileAttributeView
IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、それがRuntimePermission
("accessUserInformation")を拒否するか、またはそのcheckRead
メソッドがファイルへの読取りアクセスを拒否する場合。void setPermissions(Set<PosixFilePermission> perms) throws IOException
perms
- アクセス権の新しいセットClassCastException
- セットに次のタイプでない要素が含まれる場合: PosixFilePermission
IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、それがRuntimePermission
("accessUserInformation")を拒否するか、またはそのcheckWrite
メソッドがファイルへの書込みアクセスを拒否する場合。void setGroup(GroupPrincipal group) throws IOException
group
- 新しいファイルのグループ所有者IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、それがRuntimePermission
("accessUserInformation")を拒否するか、またはそのcheckWrite
メソッドがファイルへの書込みアクセスを拒否する場合。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.