2014-02-10 53 views
0

我來到這裏是因爲我遇到了一些問題。我正在使用.NET 4.0的C#& Visual Studio 2010在Windows 7下ListView只加載一個項目

我正在爲自己創建一個簡單的Terraria保存同步實用程序(我可能稍後會發布,一旦它更精緻),但基本上它的方式應該是自動將文件複製到Dropbox同步目錄,然後能夠訪問遠程計算機上的同一目錄,但是,我遇到了一些障礙。

我有4個ListViews全部設置爲詳細視圖。我有2個本地球員和世界的列表視圖,以及2個Dropbox球員和世界的列表視圖。我需要這些ListViews做的是顯示所有以.plr(對於玩家)或.wld(對於世界)結尾的文件的文件名。我有它的部分工作,但它只顯示1項目!

enter image description here

正如你所看到的,我在目錄中有多個文件,但只有一個碰巧被顯示出來。下面是我用

private void loadLocalPlayers() 
     { 
      string tDir = mr.Read("TERRARIADIR"); 
      string playersDir = tDir + @"\Players"; 

      MessageBox.Show("Dir is " + playersDir.ToString()); 
      DirectoryInfo dinfo = new DirectoryInfo(playersDir); 
      FileInfo[] Files = dinfo.GetFiles("*.plr"); 
      ListViewItem lvi = new ListViewItem(); 

      foreach (FileInfo file in Files) 
      { 
       //lvi.SubItems[0] = file.Name; 
       string s = file.Name.ToString(); 
       char[] arr = s.ToCharArray(); 
       lvi.Text = s; 


      } 
      localPlayers.Items.Add(lvi); 
     } 

它讀取寫入註冊表(目錄原來右),但一個字符串的目錄什麼,我覺得是一個,但模糊的是foreach語句,代碼,如果你們能幫助我,我將不勝感激

+0

你'..Items.Add'可能需要在foreach循環中。 –

回答

3

您已經將localPlayers.Items.Add方法放在foreachloop之外。

 foreach (FileInfo file in Files) 
     { 
      lvi = new ListViewItem(); 
      string s = file.Name.ToString(); 
      char[] arr = s.ToCharArray(); 
      lvi.Text = s; 

      localPlayers.Items.Add(lvi); 
     } 

做到這一點,而不是

+0

nope,似乎沒有工作:(編輯:沒關係!看到後的事實,並將其轉移到那裏的聲明lvi工作,非常感謝你! – MrMiketheripper

+0

記得標記問題解決:) – Softwarehuset

+0

這不是我之前讓我知道,我現在才記起來。再次感謝你! :) – MrMiketheripper