• C#Winfrom获取指定目录下所有文件名称和文件名称相应的目录 并且添加到DataTable


            System.Data.DataTable dt = new System.Data.DataTable();
            DataColumn FileName;
            DataColumn FileDirectory;
    
            public FrmGetFileDirectory()
            {
                InitializeComponent();
            }
    
            /// <summary>
            /// 获取文件目录及文件全称
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btnGetFileDirectory_Click(object sender, EventArgs e)
            {
                ArrayList list = new ArrayList();
                ArrayList FileList = new ArrayList();
                System.Data.DataTable ddt=GetFileList(@"D:\TFSWork\Zoes\SRC-InProcess", "*.*", list, FileList, true);
    
                Export(ddt, @"D:\Work\工作信息\FileDicre.xlsx");
    
            }
    
            /// <summary>
            /// 首次加载事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void FrmGetFileDirectory_Load(object sender, EventArgs e)
            {
                FileName = new DataColumn("FileName", typeof(string));
                FileDirectory = new DataColumn("FileDirectory", typeof(string));
                dt.Columns.Add(FileName);
                dt.Columns.Add(FileDirectory);
            }
    
    
    
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="strDir">指定路径</param>
            /// <param name="strFilePattern">要与strDir 中的文件名匹配的搜索字符串</param>
            /// <param name="arrDirs">查询得到的所有目录ArrayList</param>
            /// <param name="arrFiles">查询得到的所有文件名称ArrayList</param>
            /// <param name="bIsRecursive">是否递归查询</param>
            private System.Data.DataTable GetFileList(string strDir, string strFilePattern, ArrayList arrDirs, ArrayList arrFiles, bool bIsRecursive)
            {
                if (string.IsNullOrEmpty(strDir))
                {  // 参数正确性检查
                    return dt;
                }
                DataRow dr = dt.NewRow();
    
                try
                {
                    // 取得指定路径下所有符合条件的文件
                    string[] strFiles = Directory.GetFiles(strDir, strFilePattern);
                    // 取得指定路径下所有目录
    
                    string[] strDirs = Directory.GetDirectories(strDir);
    
                    foreach (string name in strFiles)
                    {  // 将所有文件名称加入结果ArrayList中
                        //arrFiles.Add(name);
                        string strFileName = GetFileName(name);
                        dr[FileName] = strFileName;//添加到文件名称:列
                        dr[FileDirectory]=GetDirectory(name);
                    }
    
                    foreach (string name in strDirs)
                    {  // 将所有目录加入结果ArrayList中
                        arrDirs.Add(name);
                        //dr[FileDirectory] = name;//添加到文件全目录:列
                    }
    
                    if (strFiles.Length > 0)
                        dt.Rows.Add(dr);//添加到行
    
                    if (bIsRecursive)
                    {  // 递归
                        if (strDirs.Length > 0)
                        {
                            foreach (string dir in strDirs)
                            {  // 递归遍历所有文件夹
                                GetFileList(dir, strFilePattern, arrDirs, arrFiles, bIsRecursive);
                            }
                        }
                    }
                }
                catch(Exception e)
                {
                    MessageBox.Show("报错" + e.Message);
                }
                return dt;
            }
            /// <summary>
            /// 获取文件名称
            /// </summary>
            /// <param name="path"></param>
            /// <returns></returns>
            public static string GetFileName(String path)
            {
                if (path.Contains("\\"))
                {
                    string[] arr = path.Split('\\');
                    return arr[arr.Length - 1];
                }
                else
                {
                    string[] arr = path.Split('/');
                    return arr[arr.Length - 1];
                }
            }
    
            /// <summary>
            /// 获取文件目录
            /// </summary>
            /// <param name="filename"></param>
            /// <returns></returns>
            public static String GetDirectory(string filename)
            {
                return filename.Substring(0, filename.LastIndexOf("\\"));
            }
    

      

  • 相关阅读:
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
    C++生产和使用的临时对象
    RecyclerView0基于使用
    Docker创建MySQL集装箱
  • 原文地址:https://www.cnblogs.com/wuhuisheng/p/2738502.html
Copyright © 2020-2023  润新知