在 C# 開發過程中,經常會遇到「存取路徑被拒絕」的錯誤訊息,例如:存取路徑 "C:\Users\Administrator.USER-20160302KA\Desktop" 被拒絕。這類問題通常與檔案系統權限、使用者帳戶控制(UAC)或路徑本身的特性有關。
目標資料夾需要管理員權限才能存取,而應用程式以一般使用者身分執行。
桌面、系統目錄(如 C:\Windows、C:\Program Files)受保護,寫入需要提升權限。
目標檔案正被其他程式開啟,導致無法存取。
在 Visual Studio 中右鍵專案 → Properties → Application → View Windows Settings,在 app.manifest 中加入:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Everyone 或目前使用者帳號建議將資料寫入 Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) 或 Application.StartupPath 下的子目錄,而非桌面或系統目錄。
try {
// 檔案操作程式碼
} catch (UnauthorizedAccessException ex) {
MessageBox.Show("權限不足,請以管理員身分執行:" + ex.Message);
}
FileIOPermission 檢查權限後再操作