我来到这里是因为我遇到了一些问题。我正在使用.NET 4.0和C#进行C# Windows 7下的Visual Studio 2010
我正在为自己创建一个简单的Terraria保存同步实用程序(稍后我可能会更精确地发布)但基本上它应该工作的方式是自动将文件复制到Dropbox同步目录然后能够访问远程计算机上的同一目录,但是,我遇到了一些障碍。
我有4个ListViews都设置为详细视图。我有2个本地玩家和世界的列表视图,以及2个Dropbox玩家和世界的列表视图。我需要这些ListViews做的是显示以.plr(对于玩家)或.wld(对于世界)结尾的所有文件的文件名。我有部分工作,但它只显示1项!
正如您所看到的,我在目录中有多个文件,但只有一个文件正好显示出来。这是我用过的代码
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 :(得分: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);
}
改为