3

サーバー上にフォルダーが存在しない場合にフォルダーを作成し、ファイルをコピーするWindowsアプリがありますが、現在、指定されたパスでアクセスが拒否されます。これは私が持っているものです。

If (Not System.IO.Directory.Exists(sdPath & "\DONE")) Then
   System.IO.Directory.CreateDirectory(sdPath & "\DONE")
   sdFileInfo.MoveTo(sdPath & "\DONE\" & sdFileName & sdFileInfo.Extension)
Else
   sdFileInfo.MoveTo(sdPath & "\DONE\" & sdFileName & sdFileInfo.Extension)
End If

フルアクセスを許可するにはどうすればよいですか?

アクセス許可を取得できるかどうかを確認するためのこのテスト コードがありますが、機能していないようです。

txtPath.Text = "\\ServerName\images\dbpics\POLPICS\55\Polpics\Actual\"

Dim sFolderPath As String = txtPath.Text
Dim sUserAccount As String = "(DomainName\Administrator)"

Dim oFolderInfo As IO.DirectoryInfo = New IO.DirectoryInfo(sFolderPath)
Dim oFolderAcl As New DirectorySecurity(txtPath.Text, System.Security.AccessControl.AccessControlSections.Access)

oFolderAcl.AddAccessRule(New FileSystemAccessRule(sUserAccount, _
                                                  FileSystemRights.FullControl, _
                                                  AccessControlType.Allow))

oFolderInfo.SetAccessControl(oFolderAcl)

oFolderAcl = Nothing
oFolderInfo = Nothing
enter code here
4

2 に答える 2

4

使用してみてください:

Imports System.Security.AccessControl


 Dim FolderPath As String = "C:\TestingFolder" 'Specify the folder here
 Dim UserAccount As String = "MYDOMAIN\someuser" 'Specify the user here

 Dim FolderInfo As IO.DirectoryInfo = New IO.DirectoryInfo(FolderPath)
 Dim FolderAcl As New DirectorySecurity
 FolderAcl.AddAccessRule(New FileSystemAccessRule(UserAccount, FileSystemRights.Modify,      InheritanceFlags.ContainerInherit Or InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow))
'FolderAcl.SetAccessRuleProtection(True, False) 'uncomment to remove existing permissions
FolderInfo.SetAccessControl(FolderAcl)

こちらのURLから頂きました

于 2013-02-13T12:07:27.393 に答える
2

次のコマンドを使用して、作成するディレクトリに必要なセキュリティを追加できます。

System.IO.Directory.CreateDirectory(sFolderPath, dirSecurity)

CreateDirectoryとMSDNのDirectorySecurityのドキュメントで、いくつかのアクセス許可と例を確認できます。

于 2013-02-13T12:16:27.780 に答える