簡體   English   中英

ListView添加帶有子項的項目

[英]ListView adding items with subitems

我正在嘗試逐行讀取文件,該文件工作正常,但我想將進入子視圖的結果分開。

我還在文件夾中搜索所有.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());
                        }
                    }
                }
            }

這似乎不起作用:/,有什么想法嗎? 我整天都在努力,似乎無法使它工作:(。

不確定您的問題,但按照標題,以下問題的答案可能會有所幫助。

C#listView,如何將項目添加到第2、3和4列等?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM