c#下獲取當前文件夾下所有的文件路徑信息(四)


1.獲取指定文件夾下所有文件的路勁信息

using Microsoft.IdentityModel.Protocols;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace Async
{
    public class Program
    {

        public static void Main(string[] args)
        {
            #region 獲取文件夾下所有文件的完整路徑
            string strPaths = ConfigurationManager.AppSettings["dirPath"];
            List<FileInfo> lst = new List<FileInfo>();
            List<FileInfo> lstfiles = GetInfo(strPaths, lst);
            DirectoryInfo info = new DirectoryInfo(strPaths);
            foreach (FileInfo item in lstfiles)
            {
                var index = lstfiles.IndexOf(item);
                Console.WriteLine($"循環第{index}次  -  取到對應的文件信息:{item}");
            }
            Console.ReadKey();
            #endregion
        }

        #region 獲取文件夾下所有文件的完整路徑
        /// <summary>
        /// 獲取文件夾下所有文件的完整路徑
        /// </summary>
        /// <param name="path">路徑</param>
        /// <param name="lst">返回參數</param>
        /// <returns></returns>
        private static List<FileInfo> GetInfo(string path, List<FileInfo> lst)
        {
            try
            {
                //string[] dirInfo = Directory.GetDirectories(path);
                string[] fileList = Directory.GetFileSystemEntries(path);
                foreach (string item in fileList)
                {
                    FileInfo fi = new FileInfo(item);
                    if (fi.Extension != " ") // 獲取路徑下的所有文件路徑
                    {
                        lst.Add(fi);
                    }

                }
                return lst;
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }
        #endregion
    }
}
View Code

2.獲取指定文件夾下所有文件的路勁信息(包括子文件夾)

using Microsoft.IdentityModel.Protocols;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace Async
{
    public class Program
    {

        public static void Main(string[] args)
        {
            #region 獲取文件夾下所有文件的完整路徑(包括子文件夾)
            string strPaths = ConfigurationManager.AppSettings["dirPath"];
            List<string> lstfiles = GetInfoPath(strPaths);
            DirectoryInfo info = new DirectoryInfo(strPaths);
            foreach (var item in lstfiles)
            {
                var index = lstfiles.IndexOf(item);
                Console.WriteLine($"循環第{index}次  -  取到對應的文件信息:{item}");
            }
            Console.ReadKey();
            #endregion
        }

        #region 獲取文件夾下的所有文件的完整路徑(包括子文件夾)

        static List<string> list = new List<string>();//定義list變量,存放獲取到的路徑
        /// <summary>
        /// 獲取文件夾下的所有文件的完整路徑(包括子文件夾)
        /// </summary>
        /// <param name="path">文件路徑</param>
        /// <returns></returns>
        public static List<string> GetInfoPath(string path)
        {
            DirectoryInfo dir = new DirectoryInfo(path);
            FileInfo[] fil = dir.GetFiles();
            DirectoryInfo[] dii = dir.GetDirectories();
            foreach (FileInfo f in fil)
            {
                list.Add(f.FullName);//添加文件的路徑到列表
            }

            //獲取子文件夾內的文件列表,遞歸遍歷
            foreach (DirectoryInfo d in dii)
            {
                GetInfoPath(d.FullName);
                list.Add(d.FullName);//添加文件夾的路徑到列表
            }
            return list;
        }
        #endregion
    }
}
View Code

3.App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
    </startup>
  <appSettings>
    <add key="dirPath" value="E:\1\"/>
    <add key="Img" value="D:\Img\"/>
  </appSettings>
</configuration>
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM