2
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Security.AccessControl;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string Directoryd = "D:";
            string mydirectory = Directoryd + "\\" + "rs\\";
            if (!Directory.Exists(mydirectory))
            {
                Directory.CreateDirectory(mydirectory); 
            }
            DirectoryInfo di = new DirectoryInfo(mydirectory);
            DirectorySecurity ds = di.GetAccessControl();


            ds.AddAccessRule(new FileSystemAccessRule(@"*",FileSystemRights.FullControl,AccessControlType.Allow));
           di.SetAccessControl(ds);





        }
    }
}

これは私のコードです これを実行するとポップアップが表示されます 実際には、このコードはフォルダーrsを作成し、そのアクセス許可を設定して完全な制御を拒否しますが、実行するとエラーが表示され、一部またはすべてのID参照を翻訳できませんでしたというメッセージが表示されます. エラーは何ですか?

4

2 に答える 2

2

次の行を変更する必要があります。

 ds.AddAccessRule(new FileSystemAccessRule(@"*",FileSystemRights.FullControl,AccessControlType.Allow));

に:

 ds.AddAccessRule(new FileSystemAccessRule(@"Everyone",FileSystemRights.FullControl,AccessControlType.Allow));

また、次のEveryone Groupを見ると、名前の代わりに SSID を使用する必要があることを示唆する回答が少し下にあります。

于 2012-07-13T15:01:47.723 に答える
1

* ではなく、グループ "Everyone" を試してください。

于 2012-07-13T15:00:03.303 に答える