2011-11-06 74 views
1

我在Windows 7上使用了Monodevelop 2.8.2和c#。我試圖編寫一個函數來獲取目錄和所有子目錄中的所有文件。Monodevelop中的調試模式中沒有顯示Directory.EnumerateFiles的文件

當我在調試模式下做

string curdir = Directory.GetCurrentDirectory(); 
foreach (string file in Directory.EnumerateFiles(".", "*", SearchOption.AllDirectories)) 
{ 
    Console.WriteLine("{0} in {1}", file, curdir); 
} 

,只有可執行文件的名字中找到。但是,如果我直接通過Windows資源管理器運行可執行文件,即雙擊,所有文件都顯示(有9個)。以管理員身份運行monodevelop沒有任何效果。

這適用於視覺工作室,發生了什麼?我已經嘗試建立清潔並驗證被檢查的目錄是否相同(如果可執行文件實際上是獨立的,那麼該程序將不會運行,它需要6個DLL!)。

編輯:除去免費參數

+0

你從哪裏得到'dir'? – JaredPar

+0

@JaredPar哦,它只是「。」硬編碼 – Lucina

+0

想知道你是否曾經爲此找到任何解決方案?你記得,如果這是跳過子文件夾? – MrUnleaded

回答

2

當前工作目錄是bin/Debug從MonoDevelop的IDE調試模式下運行時。

不出所料,它包含了一些文件,可執行:)

所以,要麼

  • 使用另一種路徑,而不是"."
  • 指定其他工作目錄調試

編輯如果輸出目錄實際上是確實包含的文件多於列出的文件,您可能已經在在您的項目的調試選項中指定的特定工作目錄。你可能想要檢查它,或者只是將上面的項目符號應用不變:)

+0

我檢查了使用GetCurrentDirectory()和在兩種情況下被檢查的目錄是相同的。 – Lucina

+0

嗯。在這種情況下,它必須是運行時版本的差異。當您雙擊時,您將使用MS.Net,Monodevelop默認爲Mono運行時。您可以嘗試使用Monodevelop中的.Net框架進行調試(可能需要最新版本的Monodevelop) – sehe