对于使用 .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
请帮助我。