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, 2013, Oracle and/or its affiliates. All rights reserved.