2014-12-18 92 views
6

這是崩潰,給我這個錯誤是,當我嘗試將文件複製到某個位置的部件。錯誤:類型System.UnauthorizedAccessException的「未處理的異常出現在mscorlib.dll

string startupDirectory = "C:\\Users\\Tyler\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup"; 
File.Copy(startupDirectory, "Startup.exe"); 

我已經在網上閱讀,並試圖管理員權限,並創造了一個「app.manifest」文件:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
<requestedExecutionLevel level="highestAvailable" uiAccess="false" /> 

我證實,在設置中,應用程序清單被設置爲這個文件,但它仍然給我同樣的錯誤。

我也嘗試過這種事件,雖然我沒想到它會工作,因爲它是一個目錄不是一個文件:

File.SetAttributes(startupDirectory, FileAttributes.Normal); 

這是WinForms和我在Windows 7中,而且它想世界對於Windows 8 +。我該怎麼做呢?

在此先感謝!

+0

源文件名的名稱是什麼?在startupDirectory變量中是否提到過它? – Avijit

+0

標題中的_solved_不能幫助任何人。如果您發現除了給定答案之外的解決方案,您可以回答自己的問題並將其標記爲已接受的答案。這樣,其他人遇到同樣的問題也會得到幫助。 – mbx

回答

2

嘗試

public static void Copy(string sourceFileName, string destFileName); 

首先過載源第2過載目的地我想原因可能是這

File.Copy("Startup.exe",startupDirectory); 

嘗試設置訪問權限爲「完全控制」從哪裏淨用戶您正在閱讀/保存文件。

對於Access在IIS服務器的特定文件被拒絕錯誤,請按照下面的步驟

1- Goto to C:\\Users\\Tyler\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup 

2- Right click on your file -> Properties -> Pop Up of User properties appears -> click on Security tab-> click on Edit -> select Users-> tick on Allow Full Control -> Click Ok 

這必將解決拒絕訪問問題

的UnauthorizedAccessException指3件事情之一:

  • 調用方沒有所要求的權限。
  • 路徑是一個目錄。
  • 路徑指定的只讀文件。
+0

我對第一個選項感到困惑......第二個和第三個沒有工作,對於第四個我無法找到選擇IIS_IUSRS – Nullone

+0

@ Tyler13579完全控制用戶 –

+0

完全控制已經檢查和灰色,所以我不能改變它 – Nullone

1

試試這個:

File.Copy(startupDirectory, "Startup.exe", true); 
    File.SetAttributes("Startup.exe", FileAttributes.Normal); 
+0

它給了我同樣的錯誤 – Nullone

3

此異常Windows錯誤觸發。它沒有專用的「這絕對沒有意義」的錯誤代碼,它只是產生一個「訪問被拒絕」的錯誤代碼。哪個.NET轉換爲UnauthorizedAccessException。

這裏的「沒有任何意義」問題是您正試圖使用​​文件複製方法複製目錄。目錄不是文件。複製目錄需要先創建一個新目錄,然後複製目錄中的所有文件。 .NET有一個方法,大多數C#程序員傾向於認爲它是'錯誤'的命名空間。它是Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory()。

但是,你需要更多地考慮了一下這個問題,它當然沒有意義調用新目錄「STARTUP.EXE」。A可能意思是從Startup目錄複製一個特定的文件,我們無法猜測它可能是什麼。

1

您可以使用管理權限運行Visual Studio。 (假設Windows7,右鍵單擊開始菜單中的Visual Studio圖標,然後單擊「以管理員身份運行」)

相關問題