IAclFileAttributeView インターフェイス

定義

ファイルのAccess Control Lists (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 Lists (ACL) 属性またはファイル所有者属性の読み取りまたは更新をサポートするファイル属性ビュー。

ACL は、ファイル システム オブジェクトへのアクセス権を指定するために使用されます。 ACL は、 の AclEntry access-control-entries順序付きリストであり、それぞれが、 とそのユーザー プリンシパルのアクセス レベルを指定 UserPrincipal します。 このファイル属性ビューでは、RFC  で指定された ACL モデルに基づいて ACL の読み取りと書き込みを行う メソッド、および #setAcl(List) setAcl メソッドを定義#getAcl() getAclします。3530: ネットワーク ファイル システム (NFS) バージョン 4 プロトコルhttp://www.ietf.org/rfc/rfc3530.txt。 このファイル属性ビューは、NFSv4 ACL モデルをサポートするか、NFSv4 ACL モデルとファイル システムで使用される ACL モデルの間に明確に定義<された/em> マッピングを持つ<>ファイル システムの実装を対象としています。 このようなマッピングの詳細は実装に依存するため、指定されていません。

このクラスは、ファイル所有者を取得および設定するメソッドを定義するためにも 拡張 FileOwnerAttributeView されます。

ファイル システムが同種ではない の FileStore file-systems セットへのアクセスを提供する場合、ACL をサポートできるのは一部のファイル システムのみです。 メソッドを FileStore#supportsFileAttributeView supportsFileAttributeView 使用して、ファイル システムで ACL がサポートされているかどうかをテストできます。

<h2>相互運用性</h2>

RFC 3530 を使用すると、POSIX で定義されたアクセス許可をサポートするプラットフォームで特別なユーザー ID を使用できます。 特殊なユーザー ID は、"OWNER@"、"GROUP@"、"EVERYONE@" です。 と の AclFileAttributeView 両方が PosixFileAttributeView サポートされている場合は、これらの特殊なユーザー ID を読み取りまたは書き込みされる ACL AclEntry entries に含めることができます。 ファイル システムの UserPrincipalLookupService を使用して、 メソッドを呼び出すことによって、これらの特殊な ID を表す をUserPrincipalLookupService#lookupPrincipalByName lookupPrincipalByName取得UserPrincipalできます。

<b>使用例:</b> 既存の ACL にエントリを追加して"joe" アクセスを許可するとします。

// 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"<>キャプション style="display:none">Supported attributes</キャプション><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><th><scope="row"> "owner" </th><td<UserPrincipal>/td<>/tr></tbody<>/table></blockquote>

メソッドはFiles#getAttribute getAttribute、 メソッドまたは メソッドを呼び出すかのように ACL 属性または所有者属性を#getAcl getAcl#getOwner getOwner読み取るために使用できます。

メソッドはFiles#setAttribute setAttribute、 メソッドまたは メソッドを呼び出すかのように ACL 属性または所有者属性を#setAcl setAcl#setOwner setOwner更新するために使用できます。

<h2> ファイル <の作成時に ACL を設定する /h2>

この属性ビューをサポートする実装では、ファイルまたはディレクトリの作成時の初期 ACL の設定もサポートされる場合があります。 最初の ACL は、 や Files#createFile createFileFiles#createDirectory createDirectory などFileAttribute、オブジェクトのAclEntry一覧である と FileAttribute#name name"acl:acl"FileAttribute#value value のメソッドに提供できます。

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

1.7 で追加されました。

の Java ドキュメント java.nio.file.attribute.AclFileAttributeView

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

プロパティ

Acl

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

Handle

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

(継承元 IJavaObject)
JniIdentityHashCode

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

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniPeerMembers

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

(継承元 IJavaPeerable)
Owner

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

(継承元 IFileOwnerAttributeView)
PeerReference

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

(継承元 IJavaPeerable)

メソッド

Disposed()

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

(継承元 IJavaPeerable)
DisposeUnlessReferenced()

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

(継承元 IJavaPeerable)
Finalized()

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

(継承元 IJavaPeerable)
Name()

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

SetJniIdentityHashCode(Int32)

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

(継承元 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

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

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

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

(継承元 IJavaPeerable)
UnregisterFromRuntime()

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

(継承元 IJavaPeerable)

拡張メソッド

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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

適用対象