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 } }
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 } }
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>