使用 C# 创建目录时拒绝访问

发布于 2024-11-18 09:33:24 字数 479 浏览 3 评论 0原文

string windowsDirectory = Environment.GetEnvironmentVariable("ProgramFiles");
string mydirecoty = windowsDirectory + "\\" + "NetServices\\";

if (!Directory.Exists(mydirecoty))
  {
    Directory.CreateDirectory(mydirecoty); //Access to the path 'C:\Program Files (x86)\NetServices\' is denied.
  }

当我在没有管理员帐户的情况下运行 .net 应用程序时,会引发异常。如果我尝试在其他 C:\ 驱动器(如 D:\)中创建目录,它运行正常。

我想在 Program Files/ Windows 文件夹中创建目录的解决方案是什么?

string windowsDirectory = Environment.GetEnvironmentVariable("ProgramFiles");
string mydirecoty = windowsDirectory + "\\" + "NetServices\\";

if (!Directory.Exists(mydirecoty))
  {
    Directory.CreateDirectory(mydirecoty); //Access to the path 'C:\Program Files (x86)\NetServices\' is denied.
  }

exception is thrown when I run my .net application without Administrator account. While If I try to create directory in other then C:\ drive like D:\ it runs fine.

What is solution that I want to create directory in Program Files/ Windows folder?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

王权女流氓 2024-11-25 09:33:24

在 Vista 和 Windows 7(以及 Windows Server 2008 / 2008 R2)中,C:\program files 文件夹受到保护(根据设计) - 普通用户帐户没有任何权限在那里创建目录 - 这是一个系统文件夹。

您需要以管理员身份运行 - 那么您甚至有权在受保护的系统文件夹中创建目录 - 或者您在其他地方而不是在受保护的系统文件夹内创建目录。第二个选项将是推荐和首选的选项。

The C:\program files folder is protected (by design) in Vista and Windows 7 (and Windows Server 2008 / 2008 R2) - normal user accounts do not have any permission to create directories in there - it's a system folder.

Either you need to run as admin - then you have permission to create directories even in protected system folders - or you create the directories elsewhere and not inside a protected system folder. The second option would be the recommended and preferred option.

醉殇 2024-11-25 09:33:24

如果您的应用程序打算由用户运行,请写入用户的应用程序数据文件夹或临时文件夹。您的应用程序应安装到 Program Files 目录,并且可能使用 Windows 目录中的某些文件,但它永远不必写入任一位置。
您可以轻松地从环境变量中获取用户的应用程序daa文件夹。

If your application is intended to be run by the user, write to the user's app data folder or temp folder. Your app should install to the Program Files directory, and perhaps use some files in the Windows directory, but it should never have to write to either location.
You can easily get the user's app daa folder from the environment variables.

盗琴音 2024-11-25 09:33:24

如果您从 Web 应用程序运行此程序,请确保应用程序池用户具有该文件夹的 ntfs 权限。

if you are running this from web application make sure that the application pool user has ntfs permission of that folder.

叫嚣ゝ 2024-11-25 09:33:24

您需要提升用户权限,因为它是 Windows Vista/7 中的一项功能。
以管理员身份运行即可解决问题。

You need to elevate user privileges as it is a feature in windows vista/7.
Running as admin will solve the problem.

一场春暖 2024-11-25 09:33:24

如果您使用Windows XP以上的操作系统,您将无法访问C:\PrpgramFiles受保护的读写,除非您的AVII应用程序具有管理员权限。

再见

if you use operating systems higher than Windows XP, you will not able to access C: \ PrpgramFiles protecded because reading and writing, unless AVII your application with Administrator rights.

Bye

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文