以前の記事「【VB.NET】ファイルのアクセス権限を変更する」でファイルのアクセス権限を変更する方法について説明しました。
今回は、フォルダのアクセス権限を変更する方法について説明します。
以下、サンプル。
上記を実行すると、DドライブにあるTestフォルダのアクセス権限に"Everyone"に対してフルコントロールの権限が与えられます。
【補足事項】
・管理者権限がない場合、プログラムは例外を発生します。
・AccessRuleクラスのコンストラクタ引数がフォルダの場合と異なります。
→フォルダの場合、簡略指定としてファイルと同じ引数にすることができます。
簡略指定の場合、サブフォルダやファイルを含めた権限の変更はできません。
今回は、フォルダのアクセス権限を変更する方法について説明します。
以下、サンプル。
Imports System.Security.AccessControl
Public Class ACLSample
Public Shared Sub Main()
Dim DirInfo As New System.IO.DirectoryInfo("D:\test")
Try
Dim DirSec As DirectorySecurity
DirSec = DirInfo.GetAccessControl()
'アクセス権限を指定
'Everyoneに対し、フルコントロールの許可
'(サブフォルダ、及び、ファイルにも適用)
Dim AccessRule As New FileSystemAccessRule( _
"Everyone", _
FileSystemRights.FullControl, _
InheritanceFlags.ContainerInherit, _
PropagationFlags.None, _
AccessControlType.Allow)
'アクセス権限を追加
DirSec.AddAccessRule(AccessRule)
DirInfo.SetAccessControl(DirSec)
Catch ex As Exception
Debug.WriteLine(ex.Message)
End Try
End Sub
End Class
上記を実行すると、DドライブにあるTestフォルダのアクセス権限に"Everyone"に対してフルコントロールの権限が与えられます。
【補足事項】
・管理者権限がない場合、プログラムは例外を発生します。
・AccessRuleクラスのコンストラクタ引数がフォルダの場合と異なります。
→フォルダの場合、簡略指定としてファイルと同じ引数にすることができます。
簡略指定の場合、サブフォルダやファイルを含めた権限の変更はできません。
- カテゴリ:
- VB.NET