C#,处理文件,";未经授权的访问;?
我正在学习如何使用C#打开和保存文件,而且vista似乎不会让我的程序保存到C:\根目录下的文件,除非我在管理员模式下运行它 有没有办法让我的程序可以处理它想要的任何文件 谢谢C#,处理文件,";未经授权的访问;?,c#,windows,file-permissions,C#,Windows,File Permissions,我正在学习如何使用C#打开和保存文件,而且vista似乎不会让我的程序保存到C:\根目录下的文件,除非我在管理员模式下运行它 有没有办法让我的程序可以处理它想要的任何文件 谢谢 private string name; private void open_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { name = openFil
private string name;
private void open_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
name = openFileDialog1.FileName;
textBox1.Clear();
textBox1.Text = File.ReadAllText(name);
textBox2.Text = name;
}
}
private void save_Click(object sender, EventArgs e)
{
File.WriteAllText(name, textBox1.Text);
}
默认情况下,程序将使用您的凭据运行 因此,它们没有写入根文件夹的权限 如果希望它使用其他凭据运行,可以使用命令行使用其他凭据执行应用程序
或者,向应用程序运行时使用的帐户授予更多权限。要使程序以管理员权限启动,您必须更改清单。这可以通过添加新项目->常规->应用程序清单文件来完成。打开清单并将“requestedExecutionLevel”设置为“RequiredAdministrator”。完成此操作后,打开项目设置并在“应用程序”选项卡上选择新清单。出现UnauthorizedAccess异常的原因有几个。选中以下选项之一:
- 路径指定了一个只读文件
- 当前平台不支持此操作
- 路径指定了一个目录
今天我不小心碰到了第三道题;-) 看来你已经找到路了。。。使用正确的权限运行它。或者更好的是,在您已经拥有权限的空间中玩,比如您的文档目录或usb拇指驱动器等。是的,但其他程序不需要在管理员模式下运行,可以轻松处理系统上的每个文件。例如,在Word中,您可以将文件保存在希望保存的位置。@Rob:这是因为Word在默认情况下是以提升的权限运行的。对于普通家庭用户来说,这是最简单的情况,但你不能期望这种行为无处不在。例如,在许多大公司中,Word将仅使用您的使用凭据运行,并且您只能将文件写入您拥有的目录中。>>>这是因为Word在默认情况下以提升的权限运行。好的,我可以在默认情况下给我的程序这个特权吗?这是关于如何实际解决问题的正确答案。如果要将应用程序部署到公司、教育、政府或军事环境中的用户,则应避免要求具有管理权限才能运行应用程序,因为许多环境不允许用户具有本地管理权限。