c# - 如何跳过 VirtualStore 并读取 Program Files 文件夹中的文件?

标签 c# windows-10 virtualstore

我在 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/

相关文章:

docker Hello World : authentication error

c# - Windows 10 sleep 问题。图形消失

vb6 - 使用 ODBC 从位于 Program Files 文件夹中的数据库读取

c# - 如何从数据集中的存储过程返回表名

javascript - 我的 div 在第一次执行后消失

c# - 如何在 Windows Azure Web Apps 中发布和使用字体?

winapi - 检测窗口是否正在使用硬件加速图形上下文

inno-setup - 获取虚拟商店路径?

c# - 如何检测到 Windows VirtualStore 的文件重定向?

c# - 在设置文件中保存一些东西或..?在 C# 中