c# - 创建目录 - 访问被拒绝

标签 c# .net winforms

当我尝试在 Program Files 中为我的程序创建一个新目录时,我抛出了一个错误,指出访问被拒绝。这是错误:其他信息:拒绝访问路径“C:\Program Files\PointOfSales”。这是为什么?我找不到任何解决我的问题的 C# 特定帮助。这是我现在使用的代码。

if (!Directory.Exists("C:\\Program Files\\PointOfSales"))
        {
            Directory.CreateDirectory("C:\\Program Files\\PointOfSales");
        }

谢谢:)

最佳答案

以当前用户身份运行的程序没有在 Program Files 位置创建目录的权限。某些位置需要管理员权限(对于程序或用户)才能创建目录和其他文件 I/O 操作。

如果程序不允许以管理员身份运行,请让安装程序为您创建目录。许多用户应用程序将不允许以管理员身份运行(作为公司安全策略的一部分),因此在这些情况下无法在 protected 位置创建目录。

如果让安装程序来做,你可以指定requireAdministrator (/level='requireAdministrator')UAC Execution Level 的 C++ 安装程序中选项。

对于 C# 程序,您可以将以下内容放入您的 list 中以确保它以管理员身份运行:

<security>
  <requestedPrivileges>
    <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
  </requestedPrivileges>
</security> 

关于c# - 创建目录 - 访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19713951/

相关文章:

c# - 将附加 header 发送到 System.Windows.Forms.WebBrowser

c# - 如何在多页中打印一张大图像?

c# - 多个运行时过滤器的动态 Linq 查询

c# - 由于缺少文件,Visual Studio 2010 构建错误

c# - 在不修改 TextBox 中的文本的情况下捕获并处理 KeyPress/KeyDown

c# - 也许在 Linq 中找到了一个功能。具有多个字段的 Groupby

c# - 如何使用配置在 WCF 客户端上设置用户名/密码?

c# - 在类似 eBay 的系统中使用的最佳搜索引擎 (.NET)

c# - 在 C# 中的 List<> 中避免重复的快速方法

c# - 除了 SCSS 注入(inject)还有其他选择吗? (又名穷人通过默认构造函数注入(inject))