簡體   English   中英

使用 C# 創建目錄時訪問被拒絕

[英]Access Denied in creating directory using C#

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文件夾中創建目錄的解決方案是什么?

C:\program files夾在 Vista 和 Windows 7(和 Windows Server 2008 / 2008 R2 中創建系統文件夾沒有任何系統權限)中受保護(設計)

您需要以管理員身份運行 - 然后您有權在受保護的系統文件夾中創建目錄 - 或者您在其他位置而不是在受保護的系統文件夾中創建目錄。 第二個選項將是推薦和首選的選項。

您需要提升用戶權限,因為它是 windows vista/7 中的一項功能。 以管理員身份運行將解決問題。

如果您的應用程序打算由用戶運行,請寫入用戶的應用程序數據文件夾或臨時文件夾。 您的應用程序應該安裝到 Program Files 目錄,並且可能使用 Windows 目錄中的一些文件,但它永遠不必寫入任一位置。 您可以輕松地從環境變量中獲取用戶的 app daa 文件夾。

如果您從 web 應用程序運行它,請確保應用程序池用戶具有該文件夾的 ntfs 權限。

如果您使用高於 Windows XP 的操作系統,您將無法訪問 C:\PrpgramFiles 因為讀寫而受到保護,除非 AVII 您的應用程序具有管理員權限。

再見

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM