我在 Windows 10 PC 上有一个 c# 应用程序。我想阅读安装文件夹 (C:\Program Files (x86)\xxx) 中的设置文件,但除非用户具有管理员访问权限,否则无法编辑。问题是 Windows 正在将这些设置文件复制到 VirtualStore 并将所有读取重定向到那里 - 而以管理员身份运行的同一应用程序会在 Program Files 文件夹中看到原始设置文件。
我的问题:有没有办法让应用程序在不以管理员身份运行时也能看到 Program Files 中的原始文件?我只想阅读它们,而不是编辑它们。
最佳答案
您不需要提升权限即可从 Program Files (x86)
文件夹中读取文件。检查您如何打开文件进行阅读。您应该在普通用户模式和提升模式下指定不同的 FileAccess
标志。对于普通用户模式,应该使用“FileAccess.Read”打开它:
using (FileStream settingsFile = new FileStream(@"C:\Program Files (x86)\xxx", FileMode.Open, FileAccess.Read))
{
// Do the job
}
要检测应用程序是否以提升的权限运行,请使用 IsProcessElevated
方法。根据结果,您可以选择适当的 FileAccess
模式。
关于c# - 如何跳过 VirtualStore 并读取 Program Files 文件夹中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40172389/