ListView仅加载一个项目

时间:2014-02-10 01:09:40

标签: c# .net windows

我来到这里是因为我遇到了一些问题。我正在使用.NET 4.0和C#进行C# Windows 7下的Visual Studio 2010

我正在为自己创建一个简单的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语句,如果你们可以帮助我,我会非常感激

1 个答案:

答案 0 :(得分:3)

您已将本地Players.Items.Add方法放在foreach循环之外。

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

            localPlayers.Items.Add(lvi);
        }

改为