IAclFileAttributeView インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ファイルのAccess Control リスト (ACL) 属性またはファイル所有者属性の読み取りまたは更新をサポートするファイル属性ビュー。
[Android.Runtime.Register("java/nio/file/attribute/AclFileAttributeView", "", "Java.Nio.FileNio.Attributes.IAclFileAttributeViewInvoker", ApiSince=26)]
public interface IAclFileAttributeView : IDisposable, Java.Interop.IJavaPeerable, Java.Nio.FileNio.Attributes.IFileOwnerAttributeView
[<Android.Runtime.Register("java/nio/file/attribute/AclFileAttributeView", "", "Java.Nio.FileNio.Attributes.IAclFileAttributeViewInvoker", ApiSince=26)>]
type IAclFileAttributeView = interface
interface IFileOwnerAttributeView
interface IFileAttributeView
interface IAttributeView
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 属性
- 実装
注釈
ファイルのAccess Control リスト (ACL) 属性またはファイル所有者属性の読み取りまたは更新をサポートするファイル属性ビュー。
ACL は、ファイル システム オブジェクトへのアクセス権を指定するために使用されます。 ACL は、 AclEntry access-control-entriesの順序付きリストであり、それぞれが UserPrincipal と、そのユーザー プリンシパルのアクセス レベルを指定します。 このファイル属性ビューは、RFC で指定された ACL モデルに基づいて ACL の読み取りと書き込みを行う#getAcl() getAclと#setAcl(List) setAclメソッドを定義します。3530: ネットワーク ファイル システム (NFS) バージョン 4 プロトコルhttp://www.ietf.org/rfc/rfc3530.txt。 このファイル属性ビューは、NFSv4 ACL モデルをサポートするか、NFSv4 ACL モデルとファイル システムで使用される ACL モデルの間に <em>well-defined</em> マッピングを持つファイル システムの実装を対象としています。 このようなマッピングの詳細は実装に依存するため、指定されていません。
また、このクラスは FileOwnerAttributeView を拡張して、ファイル所有者を取得して設定するメソッドを定義します。
ファイル システムが同種ではない一連の FileStore file-systems にアクセスできる場合、ACL をサポートできるのは一部のファイル システムのみです。
FileStore#supportsFileAttributeView supportsFileAttributeView メソッドを使用して、ファイル システムが ACL をサポートしているかどうかをテストできます。
<h2>Interoperability</h2>
RFC 3530 では、POSIX で定義されたアクセス許可をサポートするプラットフォームで特別なユーザー ID を使用できます。 特殊なユーザー ID は、"OWNER@"、"GROUP@"、および "EVERYONE@" です。
AclFileAttributeViewとPosixFileAttributeViewの両方がサポートされている場合、これらの特別なユーザー ID は、読み取りまたは書き込みされる ACL AclEntry entriesに含まれる場合があります。 ファイル システムのUserPrincipalLookupServiceは、UserPrincipal メソッドを呼び出すことによって、これらの特殊な ID を表すUserPrincipalLookupService#lookupPrincipalByName lookupPrincipalByNameを取得するために使用できます。
<b>Usage の例:</b> "joe" アクセスを許可するエントリを既存の ACL に追加するとします。
// lookup "joe"
UserPrincipal joe = file.getFileSystem().getUserPrincipalLookupService()
.lookupPrincipalByName("joe");
// get view
AclFileAttributeView view = Files.getFileAttributeView(file, AclFileAttributeView.class);
// create ACE to give "joe" read access
AclEntry entry = AclEntry.newBuilder()
.setType(AclEntryType.ALLOW)
.setPrincipal(joe)
.setPermissions(AclEntryPermission.READ_DATA, AclEntryPermission.READ_ATTRIBUTES)
.build();
// read ACL, insert ACE, re-write ACL
List<AclEntry> acl = view.getAcl();
acl.add(0, entry); // insert before any DENY entries
view.setAcl(acl);
<h2> ダイナミック アクセス </h2>
ファイル属性への動的アクセスが必要な場合は、 この属性ビューでサポートされる属性は次のとおりです。 <blockquote><table class="striped"><caption style="display:none">Supported attributes</caption><thead><tr><th scope="col"> Name </th><th scope="col"> Type </th></tr></thead><tbody><tr><th scope="row"> "acl" </th><td>List>AclEntry> </td></tr><tr><th scope="row"> "owner" </th><td>UserPrincipal</td></tr></tbody></table></blockquote>
Files#getAttribute getAttributeメソッドは、#getAcl getAclまたは#getOwner getOwnerメソッドを呼び出すかのように ACL または所有者属性を読み取るために使用できます。
Files#setAttribute setAttributeメソッドは、#setAcl setAclまたは#setOwner setOwnerメソッドを呼び出すかのように ACL または所有者属性を更新するために使用できます。
<h2> ファイルの作成時に ACL </h2 を設定する>
この属性ビューをサポートする実装では、ファイルまたはディレクトリの作成時の初期 ACL の設定もサポートされる場合があります。 初期 ACL は、Files#createFile createFileやFiles#createDirectory createDirectoryなどのメソッドに、FileAttributeFileAttribute#name nameと"acl:acl" オブジェクトの一覧であるFileAttribute#value valueを含むAclEntryとして提供できます。
実装で NFSv4 定義 ACL モデルとは異なる ACL モデルがサポートされている場合、ファイルの作成時に初期 ACL を設定するには、ACL をファイル システムでサポートされているモデルに変換する必要があります。 ファイルを作成するメソッドは、翻訳の結果として安全性が低いファイルを作成しようとしたときに 、( IOException IOExceptionをスローすることによって) 拒否する必要があります。
1.7 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
プロパティ
| 名前 | 説明 |
|---|---|
| Acl |
ファイルのアクセス制御リストを取得または設定します。 |
| Handle |
基になる Android オブジェクトの JNI 値を取得します。 (継承元 IJavaObject) |
| JniIdentityHashCode |
ラップされたインスタンスの |
| JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
| JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
| Owner |
ファイルの所有者を取得または設定します。 (継承元 IFileOwnerAttributeView) |
| PeerReference |
ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。 (継承元 IJavaPeerable) |
メソッド
| 名前 | 説明 |
|---|---|
| Disposed() |
インスタンスが破棄されたときに呼び出されます。 (継承元 IJavaPeerable) |
| DisposeUnlessReferenced() |
このインスタンスへの未処理の参照がない場合は、 |
| Finalized() |
インスタンスが終了したときに呼び出されます。 (継承元 IJavaPeerable) |
| Name() |
属性ビューの名前を返します。 |
| SetJniIdentityHashCode(Int32) |
|
| SetJniManagedPeerState(JniManagedPeerStates) |
ファイルのAccess Control リスト (ACL) 属性またはファイル所有者属性の読み取りまたは更新をサポートするファイル属性ビュー。 (継承元 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
|
| UnregisterFromRuntime() |
ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。 (継承元 IJavaPeerable) |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
ファイルのAccess Control リスト (ACL) 属性またはファイル所有者属性の読み取りまたは更新をサポートするファイル属性ビュー。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|