2013-11-15 30 views
0
 System.IO.DirectoryInfo CustomerDir = new System.IO.DirectoryInfo(Properties.Settings.Default.CustDir); 

     System.IO.DirectoryInfo subDir = null; 

     foreach (DirectoryInfo subDir_loopVariable in CustomerDir.GetDirectories()) 
     { 
       subDir = subDir_loopVariable; 
       CustomerComboBox.Items.Add(subDir.Name); 
     } 

這是我現在沒有工作的代碼,任何想法?將子文件夾添加到組合框中

+1

什麼是 「它不工作」,其實是什麼意思?它錯誤嗎?你期望它做什麼,它不? – dav1dsm1th

+0

加載該特定窗口時,組合框仍然是空的,當它假設列出所有子文件夾 – BradenMeche11

+0

我有VB中的原始代碼工作,但是當我將它轉換爲C#它沒有列出組合框中的所有內容 – BradenMeche11

回答

0

代碼: -

private void Form1_Load(object sender, EventArgs e) 
    { 
     DirectoryInfo root = new DirectoryInfo("c:/"); 
     foreach (DirectoryInfo directory in root.GetDirectories()) 
     { 
      comboBox1.Items.Add(directory.Name); 
     } 
    } 

是,基本上,你的代碼;完美工作(並加載comboBox1與我的硬盤驅動器的根目錄中的文件夾) - 所以問題很可能是Properties.Settings.Default.CustDir沒有指向你認爲它的位置。在引用的代碼的第一行設置一個斷點,進入調試器並檢查該設置的值。然後遍歷代碼並觀察它枚舉文件夾。我猜你的代碼沒有被執行 - 或者它正在運行的身份,因爲它沒有對它指向的文件夾的訪問權限(如果它指向的是成功的文件夾)。

+1

Ya你是對的,謝謝你,先生! – BradenMeche11

+0

選擇答案並結束問題可能是一個好主意。很高興你解決它。 – dav1dsm1th

0

嘗試類似:

DirectoryInfo directory = new DirectoryInfo("your_directory_path"); 
DirectoryInfo[] directories = directory.GetDirectories(); 

foreach(DirectoryInfo folder in directories) 
    CustomerComboBox.Items.Add(folder.Name);