2013-08-06 6 views
0

我遇到了一個沒有預期的問題,從一個特定的目錄剛剛獲得頂級目錄全名。 C#拋出一個錯誤,並沒有列出特定目錄中的任何內容。 但MS DOS還沒有與我命令一個問題:* 「DIR C:\ WINDOWS \預取\ * pf的。」讓所有頂級目錄的文件全名在一個特定的目錄,並抑制發生的歷史錯誤

視覺基本6老 「Dir函數」 也做它沒有抱怨。 的「Windows資源管理器」打開它並不會從我問什麼。此外「Nirsofts工具套裝」列出它立即沒有任何問題。這些工具中沒有一個需要以特殊權限運行,只需雙擊應用程序圖標即可完成任務。

我環顧四周,發現這裏什麼都沒有,你會回答這個奇怪的問題。我的用戶可以訪問的目錄,如果我有任何其他應用程序到它去,現在也就是爲什麼C#拋出 一個「未經授權的訪問異常」這完全是不可思議的,因爲我有這個文件夾中訪問的問題。

我不想提高我的應用程序的管理權限,也沒有爲它創建額外的xml以使用最高權限運行它。必須避免不信任的黃色高程框。

現在我的問題:當所有其他 應用程序可以做到這一點時,我無法列出文件夾中的文件名。 我需要什麼樣的代碼,如果「Directory.GetFiles()」失敗? 在框架目錄類中是否有任何標誌或屬性允許我的應用程序訪問這些文件,無論如何。

這裏我的代碼失敗(使用System.IO):

private void button1_Click(object sender, EventArgs e) 
    { 

     textBox1.Text = textBox1.Text.Substring(0, 0); //clear the textBox1 

     //Unauthorized access exception and yellow bar in this line 
     foreach(string FileX in Directory.GetFiles(Path.Combine(Environment.GetEnvironmentVariable("windir"), "prefetch"), "*.pf")) 
     { 
      textBox1.Text += FileX; 
     } 
    } 
+0

分享你的代碼將讓我們找到原因 – Arshad

+0

這個錯誤是正值調試時間或設置 – Arshad

+0

而不是尋找'* .pf'文件後,你可以試着列出所有 - '*',什麼是你得到的結果? –

回答

1

難道我正確的,你只需要在文件的名字與目錄名稱理解。 此代碼適用於我,不需要任何海拔。

private void button1_Click(object sender, EventArgs e) 
    { 
     string folder = @"C:\windows\prefetch"; 
     string filemask = @"*.pf"; 
     string[] filelist = Directory.GetFiles(folder, (filemask)); 

     //now use filelist[i] for any operations. 
    } 
+0

好的,你是否只是簡單的代碼?我的工作在調試和發佈exe文件。不過我有win8 Pro x64。祝你好運。 – jzr

相關問題