- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 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/
我的应用程序将日志文件存储在一个位置,根据管理员设置,该位置可以重定向到 VirtualStore 中的文件夹。例如,它们有时会变成: 日志文件位于: C:\Users\-my username-\A
我希望我的程序在尝试在 C:\驱动器的根目录等 protected 位置创建文件时抛出错误(例如:FILE* FileHandle = fopen("\\file.txt",一))。相反,该文件会在
自 Win Vista 发布以来,Microsoft 为以 32 位进程运行的遗留应用程序引入了文件虚拟化。作为 Microsoft 用户帐户控制 (UAC) 的一部分发布,任何试图写入任何被认为受操
我正在使用 C# 和 .net 2.0 我将程序数据保存在以下文件中:C:\ProgramData\MyProgramName\fileName.xml 安装并运行我的应用程序一次后,我将其卸载(在卸
我有一个程序,它从文件“.\abcd.ini”读取GetPrivateProfileString - 即它将在当前目录中查找ini 文件。如果找不到 ini 文件,则会在第三个参数中将默认值设置为 G
当我的程序第一次安装时,它会在用户的 AppData 目录中放置一个文件,然后程序会定期写入该文件。问题是在 Vista 中,写入的不是用户 AppData 目录中的文件,而是“VirtualStor
我正在使用 C# 和 .net 3.5 我将我的程序数据保存在一个文件中:C:\Program Data\MyProgramName\fileName.xml 在安装并运行我的应用程序一次后,我卸载了
我的应用程序正在生成缩略图和一个 sqlite 数据库。 在制作了 inno 安装程序并首次安装应用程序后,我发现我的文件不是在程序目录中创建的,而是在名为 VirtualStore 的目录下创建的。
我在 Windows 10 PC 上有一个 c# 应用程序。我想阅读安装文件夹 (C:\Program Files (x86)\xxx) 中的设置文件,但除非用户具有管理员访问权限,否则无法编辑。问题
我的一般问题是如何解决“由于依赖项不会消失,无论我清理和重新编译多少次,我的 BPL 都不会加载”。 更新 您可能认为您有一个干净的重新编译系统,但由于 Windows 的逆向奇迹及其文件系统虚拟化错
我最近更新了我的 Visual Basic 6.0应用程序,现在包含一个 exe.manifest 文件以防止 UAC虚拟化。应用此更新后,一些用户无法找到他们的数据文件(Access MDB 文件)
我是一名优秀的程序员,十分优秀!