c#获取指定文件夹中子文件夹以及文件的信息

先上结果:

c#获取指定文件夹中子文件夹以及文件的信息_第1张图片
运行结果.PNG

你要添加的控件有:Button, textBox(把MultiLine属性设置为True), FolderBrowserDialog, ListView

c#获取指定文件夹中子文件夹以及文件的信息_第2张图片
设计界面.PNG

其中对于ListView控件,还要进行设置
1.点击右上角小三角
c#获取指定文件夹中子文件夹以及文件的信息_第3张图片
listview设置1.png

2.将视图属性修改为Detail,点击编辑列
c#获取指定文件夹中子文件夹以及文件的信息_第4张图片
listview设置2.png

3.点击添加按钮,修改txt属性
c#获取指定文件夹中子文件夹以及文件的信息_第5张图片
listview设置3.png

最后点击确定就好了。

代码

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

namespace WindowsFormsApp13
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            listView1.Items.Clear();
            //清空listView1

            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = folderBrowserDialog1.SelectedPath;
                textBox1.Enabled = false;

                DirectoryInfo d = new DirectoryInfo(textBox1.Text);
                //实例化DirectoryInfo
                FileSystemInfo[] f = d.GetFileSystemInfos();
                //获取指定文件夹中子文件夹和文件

                foreach (FileSystemInfo fs in f)
                {
                    if (fs is DirectoryInfo)
                    {
                        //判断遍历出的是文件夹
                        DirectoryInfo di = new DirectoryInfo(fs.FullName);
                        //实例化并获取完整文件夹路径
                        listView1.Items.Add(di.Name);
                        //获取名称并添加到listView1中
                        listView1.Items[listView1.Items.Count - 1].SubItems.Add(
                            di.FullName);
                        //获取路径
                        listView1.Items[listView1.Items.Count - 1].SubItems.Add(
                            di.CreationTime.ToShortDateString());
                        //获取创建时间
                    }
                    //以上这一大段不太懂,难道在listView控件中,列序号从前往后是
                    //从小到大排列的?而且后面的是前面的子控件?
                    else
                    {
                        //反之说明不是文件夹,是文件
                        FileInfo fi = new FileInfo(fs.FullName);
                        //实例化并获取完整文件路径
                        listView1.Items.Add(fi.Name);
                        //获取文件名并添加到listView1控件中
                        listView1.Items[listView1.Items.Count - 1].SubItems.Add(
                            fi.FullName);
                        //获取文件路径并添加到listView1控件中
                        listView1.Items[listView1.Items.Count - 1].SubItems.Add(
                            fi.CreationTime.ToShortDateString());
                        //获取创建时间

                    }
                }
            }
        }  
    }
}

你可能感兴趣的:(c#获取指定文件夹中子文件夹以及文件的信息)