private void button1_Click(object sender, EventArgs e)
        {
            //textBox1.Text = listView1.Items.ToString();
            
            string path = textBox1.Text;
            DirectoryInfo dirinfo = new DirectoryInfo(path);
            DirectoryInfo[] arrdirinfo;
            arrdirinfo = dirinfo.GetDirectories();
            listView1.Items.Clear();
            foreach (DirectoryInfo di in arrdirinfo)
            {
                ListViewItem liv = new ListViewItem(di.Name);
                if (Path.GetExtension(di.Name).ToString().ToUpper()=="RAR")
                {
                    liv.ImageIndex = 2;
                }
                else
                {
                    liv.ImageIndex = 3;
                }
                liv.SubItems.Add(di.LastWriteTime.ToString());
                
                listView1.Items.Add(liv);
            }
        }
问题1:为什么我注释的那行,textBox输出的是一段英文(好像是System.....什么什么的),而不是我选中的ITEMS的名字呢!
问题2:在if判定文件类型的时候怎么在测试的时候不行呢,完全没改变图标。。
求解答,谢谢!

解决方案 »

  1.   

    listView1.Items.ToString是输出的Items类型
    listView1.Items[0].Text才是内容Path.GetExtension返回值中包括 '.',好好看帮助
      

  2.   

    public ListViewItemCollection Items { get; }Items返回类型可不是string 哦 
    http://msdn.microsoft.com/zh-cn/library/system.windows.forms.listview.items(v=vs.80).aspx
      

  3.   

      if (Path.GetExtension(di.Name).TrimStart('.').ToString().ToUpper()=="RAR")
      

  4.   

    如果我想得到选中的SelectedItems的名字应该怎么写呢,我写了textBox1.Text = listView1.SelectedItems[0].ToString();
    输出是listview1:{e:\},括号里面的才是我想要的值,怎么多了点东西呢!
    还有第二个问题,用了上面2位的方法还是不行,不知道什么问题,我给全部代码你看看
    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                textBox1.Text = "我的电脑";
                string[] arrDrives = Directory.GetLogicalDrives();
                foreach (string str in arrDrives)
                {
                    ListViewItem liv = new ListViewItem(str, 0);
                    listView1.Items.Add(liv);
                    
                }
            }        private void button1_Click(object sender, EventArgs e)
            {
                
                textBox1.Text = listView1.SelectedItems[0].ToString();
                string path = textBox1.Text;
                DirectoryInfo dirinfo = new DirectoryInfo(path);
                DirectoryInfo[] arrdirinfo;
                arrdirinfo = dirinfo.GetDirectories();
                listView1.Items.Clear();
                foreach (DirectoryInfo di in arrdirinfo)
                {
                    ListViewItem liv = new ListViewItem(di.Name);
                    if (Path.GetExtension(di.Name).TrimStart('.').ToString().ToUpper() == "RAR")
                    {
                        liv.ImageIndex = 2;
                    }
                    else
                    {
                        liv.ImageIndex = 3;
                    }
                    liv.SubItems.Add(di.LastWriteTime.ToString());                listView1.Items.Add(liv);
                }
            }        private void 大图标ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                listView1.View = View.LargeIcon;
            }        private void 小图标ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                listView1.View = View.SmallIcon;
            }        private void 详细ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                listView1.View = View.Details;
            }        private void 列表ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                listView1.View = View.List;
            }    }
    求帮忙!谢谢