ListView添加子项目的项目

时间:2012-07-20 03:07:10

标签: c# listview

我正在尝试逐行读取文件,这完全有效,但我想将列表视图中的子结果分开。

我也在搜索文件夹中的所有.jar文件,因此我可以将它们用作名称(第一列)。第二列需要“版本”,第三列需要“作者”,第四列需要“描述”。

这是我从jar文件中收到的一个文本文件:

name: AFK  
main: com.github.alesvojta.AFK.AFK  
version: 2.0.5  
author: Ales Vojta / schneckk  
description: Provides AFK messages  
website: http://dev.bukkit.org/server-mods/afk/  

commands:  
    afk:  
        description: Provides AFK message when player types /afk.  
        usage: /<command>

这是我现在的代码:

private List<string> GetInstalledPlugins()
    {
        List<string> list = new List<string>();
        lvInstalledPlugins.Items.Clear();
        if (!Directory.Exists(Environment.CurrentDirectory + "\\plugins"))
        {
            Directory.CreateDirectory(Environment.CurrentDirectory + "\\plugins");
            DirectoryInfo di = new DirectoryInfo(Environment.CurrentDirectory + "\\plugins");
            FileInfo[] fileInfo = di.GetFiles("*.jar");
            foreach (var info in fileInfo)
            {
                //lvInstalledPlugins.Items.Add(info.Name);
                list.Add(info.Name);
            }
        }
        else
        {
            DirectoryInfo di = new DirectoryInfo(Environment.CurrentDirectory + "\\plugins");
            FileInfo[] fileInfo = di.GetFiles("*.jar");
            foreach (var info in fileInfo)
            {
                //lvInstalledPlugins.Items.Add(info.Name);
                list.Add(info.Name);
            }
        }
        return list;
    }

private void test(IEnumerable<string> list)
    {
        List<ListViewItem> PluginList = new List<ListViewItem>();
        var items = new string[4];
        try
        {
            foreach (var ListItem in list)
            {
                Console.WriteLine(ListItem);
                var name = Environment.CurrentDirectory + "\\plugins\\" + ListItem;
                var zip = new ZipInputStream(File.OpenRead(name));
                var filestream = new FileStream(name, FileMode.Open, FileAccess.Read);
                var zipfile = new ZipFile(filestream);
                ZipEntry item;
                while ((item = zip.GetNextEntry()) != null)
                {
                    if (item.Name == "plugin.yml")
                    {
                        using (var s = new StreamReader(zipfile.GetInputStream(item)))
                        {
                            string line;
                            while ((line = s.ReadLine()) != null)
                            {
                                if (line.Contains("name"))
                                {
                                    items[0] = line;
                                }
                                if (line.Contains("version"))
                                {
                                    items[1] = line;
                                }
                                if (line.Contains("author"))
                                {
                                    items[2] = line;
                                }
                                if (line.Contains("description"))
                                {
                                    items[3] = line;
                                }
                                try
                                {
                                    var lvitem = new ListViewItem(items);
                                    lvitem.Name = items[0];
                                    lvitem.Text = items[0];
                                    lvitem.SubItems.Add(items[1]);
                                    lvitem.SubItems.Add(items[2]);
                                    lvitem.SubItems.Add(items[3]);
                                    PluginList.Add(lvitem);
                                }
                                catch (Exception)
                                {

                                }
                            }
                            lvInstalledPlugins.Items.AddRange(PluginList.ToArray());
                        }
                    }
                }
            }

这似乎不起作用:/,任何想法?我一整天都在努力工作,似乎无法让它发挥作用:(。

1 个答案:

答案 0 :(得分:0)

不完全确定你的问题,但按照标题,下面问题的答案可能会提供一些帮助。

C# listView, how do I add items to columns 2, 3 and 4 etc?