使用linq技术获取文件详细信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace GetFInfoByLINQ
{
    public partial class Frm_Main : Form
    {
        public Frm_Main()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            {
                listView1.Items.Clear();
                textBox1.Text = folderBrowserDialog1.SelectedPath;
                List<FileInfo> myFiles = new List<FileInfo>();//创建List泛型对象
                foreach (string strFile in Directory.GetFiles(textBox1.Text))//遍历选择文件夹中的所有文件
                {
                    myFiles.Add(new FileInfo(strFile));//将遍历的所有文件添加到List对象中
                }
                var values = from strFile in myFiles//使用LINQ从List对象中查找文件
                             group strFile by strFile.Extension into FExten
                             orderby FExten.Key
                             select FExten;
                foreach (var vFiles in values)
                {
                    foreach (var f in vFiles)
                        listView1.Items.Add(f.FullName);
                }
            }
        }

        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listView1.SelectedItems.Count != 0)
            {
                FileInfo myFile = new FileInfo(listView1.SelectedItems[0].Text);//创建FileInfo对象
                //定义一个字符串数组,用来存储文件的相关属性
                string[] strAttribute = new string[] { myFile.Name, Convert.ToDouble(myFile.Length / 1024).ToString(), myFile.Extension, myFile.CreationTime.ToString(), myFile.IsReadOnly.ToString(), myFile.LastWriteTime.ToString() };
                var values = from str in strAttribute//使用LINQ为文件属性赋值
                             select new
                             {
                                 Name = strAttribute[0].ToString(),
                                 Size = strAttribute[1].ToString(),
                                 Exten = strAttribute[2].ToString(),
                                 CTime = strAttribute[3].ToString(),
                                 ReadOnly = strAttribute[4].ToString(),
                                 WTime = strAttribute[5].ToString()
                             };
                foreach (var v in values)
                {
                    textBox2.Text = v.Name.ToString();//显示文件名
                    textBox4.Text = v.Size.ToString();//显示文件大小
                    textBox3.Text = v.Exten.ToString();//显示文件扩展名
                    textBox5.Text = v.CTime.ToString();//显示文件创建时间
                    textBox6.Text = v.WTime.ToString();//显示文件最后修改时间
                    textBox7.Text = v.ReadOnly.ToString();//显示文件是否只读
                }
            }
        }
    }
}
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值