投稿者 KOZ  (社会人) 投稿日時 2024/12/21 04:29:53
Type.IsPublic って、そのクラスが Public で宣言されているかどうかなので、アクセス権にはなんら関係ないと思いますが・・・
フォルダなのに、New FileInfo( ターゲットフォルダ ) というのも変ですね。
以下のような感じで確認できます。

Imports System.IO
Imports System.Security.AccessControl
Imports System.Security.Principal

Module Module1

    Sub Main()
        Dim folderPath As String = "xxxxxxxxxx" ' フォルダパスを指定 
        Dim account As String = "BUILTIN\Users"

        Dim directorySecurity As DirectorySecurity = Directory.GetAccessControl(folderPath)
        Dim authorizationRules As AuthorizationRuleCollection = directorySecurity.GetAccessRules(TrueTrueGetType(NTAccount))
        Dim usersGroupHasAccess As Boolean = False
        For Each rule As FileSystemAccessRule In authorizationRules
            Console.WriteLine($"{rule.IdentityReference}:{rule.FileSystemRights}")
            If rule.IdentityReference.Value.Equals(account, StringComparison.CurrentCultureIgnoreCase) Then
                If rule.FileSystemRights.HasFlag(FileSystemRights.Read) Then
                    usersGroupHasAccess = True
                    Exit For
                End If
            End If
        Next

        If usersGroupHasAccess Then
            Console.WriteLine("フォルダに 'Users' グループのアクセス権があります。")
        Else
            Console.WriteLine("フォルダに 'Users' グループのアクセス権がありません。")
        End If
    End Sub

End Module