Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#,处理文件,";未经授权的访问;?_C#_Windows_File Permissions - Fatal编程技术网

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

我正在学习如何使用C#打开和保存文件,而且vista似乎不会让我的程序保存到C:\根目录下的文件,除非我在管理员模式下运行它

有没有办法让我的程序可以处理它想要的任何文件

谢谢

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在默认情况下以提升的权限运行。好的,我可以在默认情况下给我的程序这个特权吗?这是关于如何实际解决问题的正确答案。如果要将应用程序部署到公司、教育、政府或军事环境中的用户,则应避免要求具有管理权限才能运行应用程序,因为许多环境不允许用户具有本地管理权限。