遍历文件夹,取到一个文件夹下的所有文件包括子文件夹中的文件

来源:互联网 发布:张震讲鬼故事软件 编辑:程序博客网 时间:2024/05/11 04:09

  /// <summary>
        /// 得到一个文件下的所有文件
        /// </summary>
        /// <param name="filePath"></param>
        private void GetAllFiles(string filePath, List<SWFFile> swfList)
        {
            try
            {
                DirectoryInfo dInfo = new DirectoryInfo(filePath);
                //遍历该文件夹
                GetFolder(dInfo, swfList);
            }
            catch { }
        }
        /// <summary>
        /// 得到所有文件夹
        /// </summary>
        /// <param name="dInfo">文件路径</param>
        private void GetFolder(DirectoryInfo dInfo, List<SWFFile> swfList)
        {
            try
            {
                //显示其中文件
                GetFile(dInfo, swfList);
                //遍历文件夹中的文件夹
                foreach (DirectoryInfo dir in dInfo.GetDirectories())
                {
                    //递归遍历该文件夹
                    GetFolder(dir, swfList);
                }
            }
            catch { }

        }
        /// <summary>
        /// 得到文件中文件
        /// </summary>
        /// <param name="dInfo">文件路径</param>
        private void GetFile(DirectoryInfo dInfo, List<SWFFile> swfList)
        {
            try
            {
                //遍历文件夹中的文件
                foreach (FileInfo file in dInfo.GetFiles())
                {
                    SWFFile sfile = new SWFFile()
                    {
                        FileNames = file.Name,
                        FilePaths = file.FullName,
                        SwfPaths = swfPath + getFileNameType(file.Name),
                        FileType = file.Name.Substring(file.Name.LastIndexOf("."), file.Name.Length - file.Name.LastIndexOf("."))
                    };
                    swfList.Add(sfile);
                    Application.DoEvents();
                }
            }
            catch { }
        }
        //,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

        /// <summary>
        /// 得到SWF文件夹下的所有文件
        /// </summary>
        /// <param name="filePath"></param>
        private void GetAllFiles_SWF(string filePath, List<File_SWF> swfList)
        {
            try
            {
                DirectoryInfo dInfo = new DirectoryInfo(filePath);
                //遍历该文件夹
                GetFolder_SWF(dInfo, swfList);
            }
            catch { }
        }
        /// <summary>
        /// 得到所有文件夹
        /// </summary>
        /// <param name="dInfo">文件路径</param>
        private void GetFolder_SWF(DirectoryInfo dInfo, List<File_SWF> swfList)
        {
            try
            {
                //显示其中文件
                GetFile_SWF(dInfo, swfList);
                //遍历文件夹中的文件夹
                foreach (DirectoryInfo dir in dInfo.GetDirectories())
                {
                    //递归遍历该文件夹
                    GetFolder_SWF(dir, swfList);
                }
            }
            catch { }

        }
        /// <summary>
        /// 得到文件中文件
        /// </summary>
        /// <param name="dInfo">文件路径</param>
        private void GetFile_SWF(DirectoryInfo dInfo, List<File_SWF> swfList)
        {
            try
            {
                //遍历文件夹中的文件
                foreach (FileInfo file in dInfo.GetFiles())
                {
                    File_SWF sfile = new File_SWF();                 
                    sfile.All_Name = file.Name.Trim();
                    string[] arryName = file.Name.Trim().Split('§');
                    if (arryName.Length >= 2)
                    {                       
                        sfile.FID = arryName[0];
                        sfile.FName = arryName[1].Replace (".swf","");
                    }
                    sfile.FType = file.Name.Substring(file.Name.LastIndexOf("."), file.Name.Length - file.Name.LastIndexOf("."));
                    if (sfile.FType.ToLower() == ".swf")
                    {
                        sfile.Flog = 1;
                    }
                    else
                    {
                        sfile.Flog = 0;
                    }
                    swfList.Add(sfile);
                    Application.DoEvents();
                }
            }
            catch { }
        }
        //,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
        /// <summary>
        ///  路径是否存在,不存在则创建此路径
        ///  存在返回True,否则返回false
        /// </summary>
        /// <param name="strPath"></param>
        /// <returns></returns>
        private void ExistPath(string strPath)
        {
            DirectoryInfo dInfo = new DirectoryInfo(strPath);
            if (!dInfo.Exists)
            {
                dInfo.Create();//不存在则创建此路径
            }
        }