Невозможно записать файл с помощью cacls.exe - PullRequest
0 голосов
/ 10 декабря 2018

Для установки с использованием .NET я хочу дать разрешение на запись для определенного файла в папке, используя cacls.exe, поэтому я упомянул Как дать разрешения на чтение / запись для папки во время установки с использованием .NET и я использовал код из Настройка прав доступа к файлам или каталогам ACE-записей в .NET с использованием CACLS.EXE .После установки при загрузке формы я мог прочитать файл file.txt , который находится по адресу C: \ Program Files \ MyCompany \ MyProduct, с кодом ниже:

private void Form1_Load(object sender, EventArgs e)
{
//Some code

DirectoryPermission dp = new
DirectoryPermission(filename, "Everyone", "F");
dp.SetAce();
foffset = read_file();          

}
string filename = "file.txt";
private double read_file()
{

double value = 0;
try
{
    value = Double.Parse(System.IO.File.ReadAllText(@filename));
    return value;
}
catch
{
    System.IO.File.WriteAllText(@filename, value.ToString());
    return 0;
}
}

Но наНажав кнопку, я не смог написать файл с новым значением, поэтому я написал приведенный ниже код и произвел установку, но проблема остается:

private void button1_Click(object sender, EventArgs e)
{
try{        
DirectoryPermission dp = new
DirectoryPermission(filename , "Everyone", "F");
dp.SetAce();
System.IO.File.WriteAllText(@filename , offset.ToString());

}
catch
 {}
}

Я предоставляю полный контроль всем пользователям, ноЯ не могу написать файл.и я получаю эту ошибку

  Exception thrown: 'System.UnauthorizedAccessException' in mscorlib.dll

Пожалуйста, помогите мне в этом.

...