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
文件夹中创建目录的解决方案是什么?
答案 0 :(得分:5)
Vista和Windows 7(以及Windows Server 2008/2008 R2)中的C:\program files
文件夹受保护(按设计) - 普通用户帐户没有任何权限来创建目录那里 - 这是一个系统文件夹。
您需要以 admin 运行 - 然后您有权在受保护的系统文件夹中创建目录 - 或者您在别处创建目录而不是在受保护的系统文件夹中。第二种选择是推荐和首选方案。
答案 1 :(得分:0)
您需要提升用户权限,因为它是Windows Vista / 7中的一项功能。 以管理员身份运行将解决问题。
答案 2 :(得分:0)
如果您的应用程序要由用户运行,请写入用户的app数据文件夹或临时文件夹。您的应用程序应安装到Program Files目录,并且可能使用Windows目录中的某些文件,但它们永远不必写入任何位置。 您可以从环境变量轻松获取用户的app daa文件夹。
答案 3 :(得分:0)
如果从Web应用程序运行此程序,请确保应用程序池用户具有该文件夹的ntfs权限。
答案 4 :(得分:0)
如果您使用的操作系统高于Windows XP,则无法访问C:\ PrpgramFiles,因为读取和写入,除非AVII您的应用程序具有管理员权限。
再见