递归算法运用到实际项目,可行吗?

说明:将指定文件路径对应的所有文件和文件夹以及子文件夹保存到数据库

点击页面的button按钮触发事件

            string path=//z这里在界面获取用户输入绝对路径

            int start = path.LastIndexOf(@"\") + 1;
            string root = path.Substring(start);// 根目录
            FolderMange.InsertFolder(1, root, "文件夹", " ");//存入数据库,我自己定义一个方法
            ShowFiles(path, root);   //递归

   数据库字段id 、pid(所属id)、 type(类型)、 size(大小)

     /// <summary>
        /// 递归文件与文件夹
        /// </summary>
        /// <param name="path"></param>
        /// <param name="filename"></param>
        private static void ShowFiles(string path, string filename)
        {
            FolderManage m_FolderMange = new FolderManage();
            int index = m_FolderMange.ReadIndex(filename);
            DirectoryInfo dirs = new DirectoryInfo(path);
            DirectoryInfo[] folders = dirs.GetDirectories();
            FileInfo[] files = dirs.GetFiles();
            foreach (var item in files)
            {
                // 文件
                string filetype = GetFileType(item.Name);
                string size = Convert.ToString(item.Length / 1024);
                m_FolderMange.InsertFolder(index, item.Name, filetype, size);
            }

            foreach (var item in folders)
            {
                // 文件夹
                m_FolderMange.InsertFolder(index, item.Name, "文件夹", " ");
                // 递归算法
                ShowFiles(item.FullName, item.Name);

            }
        }

原文地址:https://www.cnblogs.com/walleyekneel/p/2119579.html