【问题标题】:Grant WPF application access to local drive?授予 WPF 应用程序对本地驱动器的访问权限?
【发布时间】:2023-09-09 20:54:01
【问题描述】:

我正在用 C# 编写一个应用程序(对于我的一个朋友来说,这是非常基本的),但是我有一个 StreamWriter 对象,它可以在 C: 中创建一个本地文件。我必须以管理员身份运行,它工作正常,但否则它会因“访问路径 'C:\final.html' 被拒绝。”而崩溃。

我以前从未在代码中使用过任何类型的安全性或权限。我可以做些什么来授予它对该文件夹的访问权限而无需以管理员身份运行?

编辑:这是我最终做的:

string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
using (StreamWriter output = new StreamWriter(Path.Combine(desktop, "final.html"))
{
    //...additional code

    output.Write(inputArray.Substring(lastIndex, range.Start - lastIndex));

    //...additional code

    output.Close();
}

【问题讨论】:

    标签: c# wpf security permissions streamwriter


    【解决方案1】:

    实际上,您应该写入本地用户的应用程序设置或文档文件夹,而不是根驱动器。使用来自Environment.SpecialFolderApplicationDataPersonal

    【讨论】:

    • 太棒了!这成功了,现在效果很好。非常感谢!
    • 继续:没有特定于安全查询的 WPF - 现代 Windows 将要求 UAC 确认在根目录中创建任何文件。应用程序根本不应该这样做。没有应用程序,WPF 或其他。