2012-09-07 141 views
0
if (Fubrowse.HasFile) 
{ 
    string path = Path.GetFullPath(Fubrowse.PostedFile.FileName); 
    //string root = Path.GetPathRoot(path); 
    GetFilesFromDirectory(path.Substring(0, path.LastIndexOf("\\"))); 
} 
else 
    GeneralClass.ShowMessageBox("Please Select File First."); 
} 

private void GetFilesFromDirectory(string DirPath) 
{ 
    try 
    { 
    DirectoryInfo Dir = new DirectoryInfo(DirPath); 
    FileInfo[] FileList = Dir.GetFiles("*.cs", SearchOption.AllDirectories); 
    foreach (FileInfo FI in FileList) 

這裏的路徑是c:\windows\system32\inetsrv\config\。我想要在FileList數組中獲得所有子目錄的文件名。訪問路徑'c: windows system32 inetsrv config '被拒絕

+0

所以..澄清...你想列出的文件在一個目錄..這包括文件從'C:\ WINDOWS \ SYSTEM32 \ inetsrv \ config \'文件夾? – Madushan

+0

問題是您沒有權限訪問所有**文件或任何**文件?如果您只嘗試列出* one *目錄中的文件,會發生什麼情況?你可以閱讀任何**文件的內容嗎? –

回答

-1

運行代碼的Windows帳戶需要對該文件夾的讀取權限(通常需要管理員權限)。

  • 如果您從Visual Studio運行該程序,那就是您的帳戶。以管理員身份運行VS,並且您的代碼應該可以工作。
  • 如果它是一個Web應用程序,應用程序池帳戶需要對該文件夾的讀取權限。
  • 如果是Windows服務,則需要訪問主機帳戶。
0

我有同樣的問題。我無法從C:\Windows\system32\intesrv\config獲取文件,因爲我的系統是64位的,我的請求重定向到C:\Windows\SysWOW64\system32\intesrv\config 更多解釋請參見this answer

PS。我的答案留在這裏只爲那些誰將在未來的搜索

相關問題