0

对于使用 .NET 进行安装,我希望使用 cacls.exe 授予对文件夹中特定文件的写入权限,因此我参考了如何在使用 .NET 安装期间授予对文件夹的读/写权限,并且我使用了来自使用 .NET 使用 CACLS.EXE 设置文件或目录权限 ACE 条目。安装后,在表单加载时,我可以读取位于 C:\Program Files\MyCompany\MyProduct的文件file.txt ,代码如下:

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

请帮助我。

4

0 回答 0