IAclFileAttributeView インターフェイス

定義

ファイルの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@" です。 AclFileAttributeViewPosixFileAttributeViewの両方がサポートされている場合、これらの特別なユーザー 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&lt;AclEntry&gt; 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 createFileFiles#createDirectory createDirectoryなどのメソッドに、FileAttributeFileAttribute#name name"acl:acl" オブジェクトの一覧であるFileAttribute#value valueを含むAclEntryとして提供できます。

実装で NFSv4 定義 ACL モデルとは異なる ACL モデルがサポートされている場合、ファイルの作成時に初期 ACL を設定するには、ACL をファイル システムでサポートされているモデルに変換する必要があります。 ファイルを作成するメソッドは、翻訳の結果として安全性が低いファイルを作成しようとしたときに 、( IOException IOExceptionをスローすることによって) 拒否する必要があります。

1.7 で追加されました。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

プロパティ

名前 説明
Acl

ファイルのアクセス制御リストを取得または設定します。

Handle

基になる Android オブジェクトの JNI 値を取得します。

(継承元 IJavaObject)
JniIdentityHashCode

ラップされたインスタンスの java.lang.System.identityHashCode() の値を返します。

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniPeerMembers

メンバー アクセスと呼び出しのサポート。

(継承元 IJavaPeerable)
Owner

ファイルの所有者を取得または設定します。

(継承元 IFileOwnerAttributeView)
PeerReference

ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。

(継承元 IJavaPeerable)

メソッド

名前 説明
Disposed()

インスタンスが破棄されたときに呼び出されます。

(継承元 IJavaPeerable)
DisposeUnlessReferenced()

このインスタンスへの未処理の参照がない場合は、 Dispose()を呼び出します。それ以外の場合は何も実行しません。

(継承元 IJavaPeerable)
Finalized()

インスタンスが終了したときに呼び出されます。

(継承元 IJavaPeerable)
Name()

属性ビューの名前を返します。

SetJniIdentityHashCode(Int32)

JniIdentityHashCodeによって返される値を設定します。

(継承元 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

ファイルのAccess Control リスト (ACL) 属性またはファイル所有者属性の読み取りまたは更新をサポートするファイル属性ビュー。

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

PeerReferenceによって返される値を設定します。

(継承元 IJavaPeerable)
UnregisterFromRuntime()

ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。

(継承元 IJavaPeerable)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

ファイルのAccess Control リスト (ACL) 属性またはファイル所有者属性の読み取りまたは更新をサポートするファイル属性ビュー。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象