我已經安裝了Windows服務作爲本地系統帳戶,偶爾它會在機器上生成一個目錄列表。它在Windows 7下的c:\ users ...目錄下失敗。我檢查了這些文件夾,它們似乎處於系統帳戶的完全控制之下。爲什麼我無法訪問這些目錄?作爲系統無法訪問的Windows服務正在運行C: users
System.UnauthorizedAccessException: Access to the path 'C:\Users\Public\Documents\My Videos' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption)
at System.IO.Directory.GetDirectories(String path, String searchPattern, SearchOption searchOption)
at LS.Core.Backup.DirectoryMapper.GetDirectories(String SeedDir, Int32 Count)
更新:
詳情見下面我的回答,但我也貼我用來解決這個問題的類。請參閱GitHub Gist - DirectoryHelper
是否有'InnerException'?請發佈完整的例外跟蹤。另外,你打電話什麼功能?你的程序有什麼特權? – cyanic 2012-02-01 02:25:15
我已經添加了堆棧跟蹤,不幸的是沒有內部異常。我作爲SYSTEM帳戶運行,所以不應該讓我訪問整個驅動器? – 2012-02-01 02:29:52
如果例外包括'HResult'字段,請查看它是什麼。從我可以告訴MSDN文檔(http://msdn.microsoft.com/en-us/library/system.exception.hresult.aspx),它應該是相同的HRESULT本地Windows調用將返回。同樣如Grant H.所說,嘗試Process Monitor。如果未設置'HResult',則可以看到Process Monitor的代碼。 – cyanic 2012-02-01 02:42:14