首页/ WinForm/WPF/ WPF如何遍历循环文件夹里面的每个文件返回文件列表

WPF如何遍历循环文件夹里面的每个文件返回文件列表

作者:胡同里的砖头 围观群众:403 更新于:2021-11-11

首先在MetroWindow里面拖一个按钮,用于弹出选择文件夹的对话框,再拖一个dataGrid数据控件,方便显示读取出来的文件列表
把下面的代码copy进去运行吧

WinForm/WPFcode

  1. using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    using MahApps.Metro.Controls;
    using System.Data;

    namespace WpfApp1
    {
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : MetroWindow
    {
    public MainWindow()
    {
    InitializeComponent();
    }

    private void button_Click(object sender, RoutedEventArgs e)
    {
    System.Windows.Forms.FolderBrowserDialog openFileDialog = new System.Windows.Forms.FolderBrowserDialog(); //选择文件夹


    if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)//注意,此处一定要手动引入System.Window.Forms空间,否则你如果使用默认的DialogResult会发现没有OK属性
    {
    dataGrid.ItemsSource = GetFile(openFileDialog.SelectedPath,new List<filelist>());
    }
    }

    private List<filelist> GetFile(string Sdir, List<filelist> list)
    {
    DirectoryInfo dir = new DirectoryInfo(Sdir);
    try
    {
    //判断所指的文件夹/文件是否存在
    if (!dir.Exists)
    return null;
    DirectoryInfo dirD = dir as DirectoryInfo;
    FileSystemInfo[] files = dirD.GetFileSystemInfos();//获取文件夹下所有文件和文件夹
    //对单个FileSystemInfo进行判断,如果是文件夹则进行递归操作
    foreach (FileSystemInfo FSys in files)
    {
    FileInfo fileInfo = FSys as FileInfo;

    if (fileInfo != null)
    {
    //如果是文件,进行文件操作
    FileInfo SFInfo = new FileInfo(fileInfo.DirectoryName + "\\" + fileInfo.Name);//获取文件所在原始路径
    filelist row = new filelist();
    row.filename = SFInfo.Name;
    row.createtime = SFInfo.CreationTime;
    row.path = SFInfo.FullName;
    list.Add(row);
    }
    else
    {
    //如果是文件夹,则进行递归调用
    string pp = FSys.Name;
    GetFile(Sdir + "\\" + pp, list);
    }
    }
    return list;
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    return null;
    }


    }
    }

    public class filelist {
    public string filename { get; set; }
    public DateTime createtime { get; set; }
    public string path { get; set; }
    }
    }
结果如下图:

  • 本文标题: WPF如何遍历循环文件夹里面的每个文件返回文件列表
  • 文章分类:【WinForm/WPF】
  • 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
留言评论
站点声明:
1、本站【胡同里的砖头】个人博客,借鉴网上一些博客模板,取其各优点模块自行拼装开发,本博客开发纯属个人爱好。
2、所有笔记提供给广大用户交流使用,可转载,可复制,纯个人开发所遇问题锦集记录使用
Copyright © huzlblog.com All Rights Reserved. 备案号:苏ICP备2021056683号-8