【C#】C#獲取文件夾下的所有文件


 

正文

 #基礎知識

   1、獲得當前運行程序的路徑

1 string rootPath = Directory.GetCurrentDirectory();

  2、獲得該文件夾下的文件,返回類型為FileInfo

1 string path=@"X:\XXX\XX"; 2 DirectoryInfo root = new DirectoryInfo(path); 3 FileInfo[] files=root.GetFiles();

  3、獲得該文件夾下的子目錄,返回類型為DirectoryInfo

1 string path=@"X:\XXX\XX"; 2 DirectoryInfo root = new DirectoryInfo(path); 3 DirctoryInfo[] dics=root.GetDirectories();

  4、獲得文件夾名

1 string path=@"X:\XXX\XX"; 2 DirectoryInfo root = new DirectoryInfo(path); 3 string dicName=root.Name;

  5、獲得文件夾完整的路徑名

1 string path=@"X:\XXX\XX"; 2 DirectoryInfo root = new DirectoryInfo(path); 3 string dicName=root.FullName;

  6、獲取文件的Name和FullName

復制代碼
1 string path=@"X:\XXX\XX"; 2 DirectoryInfo root = new DirectoryInfo(path); 3 foreach (FileInfo f in root.GetFiles()) 4 { 5 string name=f.Name; 6 string fullName=f.FullName; 7 } 
復制代碼

#只獲取目錄下一級的文件夾與文件

復制代碼
 1 String path = @"X:\xxx\xxx";  2  3 //第一種方法  4 string[] files = Directory.GetFiles(path, "*.txt");  5  6 foreach (string file in files)  7 {  8  Console.WriteLine(file);  9 } 10 11 //第二種方法 12 DirectoryInfo folder = new DirectoryInfo(path); 13 14 foreach (FileInfo file in folder.GetFiles("*.txt")) 15 { 16  Console.WriteLine(file.FullName); 17 }
復制代碼

# 遞歸地輸出當前運行程序所在的磁盤下的所有文件名和子目錄名

復制代碼
 1         static void Main(string[] args)  2  {  3 //獲取當前程序所在的文件路徑  4 String rootPath = Directory.GetCurrentDirectory();  5 string parentPath = Directory.GetParent(rootPath).FullName;//上級目錄  6 string topPath = Directory.GetParent(parentPath).FullName;//上上級目錄  7 StreamWriter sw = null;  8 try  9  { 10 //創建輸出流,將得到文件名子目錄名保存到txt中 11 sw = new StreamWriter(new FileStream("fileList.txt", FileMode.Append)); 12 sw.WriteLine("根目錄:" + topPath); 13 getDirectory(sw, topPath, 2); 14  } 15 catch (IOException e) 16  { 17  Console.WriteLine(e.Message); 18  } 19 finally 20  { 21 if (sw != null) 22  { 23  sw.Close(); 24 Console.WriteLine("完成"); 25  } 26  } 27 28  } 29 30 /// <summary> 31 /// 獲得指定路徑下所有文件名 32 /// </summary> 33 /// <param name="sw">文件寫入流</param> 34 /// <param name="path">文件寫入流</param> 35 /// <param name="indent">輸出時的縮進量</param> 36 public static void getFileName(StreamWriter sw, string path, int indent) 37  { 38 DirectoryInfo root = new DirectoryInfo(path); 39 foreach (FileInfo f in root.GetFiles()) 40  { 41 for (int i = 0; i < indent; i++) 42  { 43 sw.Write(" "); 44  } 45  sw.WriteLine(f.Name); 46  } 47  } 48 49 /// <summary> 50 /// 獲得指定路徑下所有子目錄名 51 /// </summary> 52 /// <param name="sw">文件寫入流</param> 53 /// <param name="path">文件夾路徑</param> 54 /// <param name="indent">輸出時的縮進量</param> 55 public static void getDirectory(StreamWriter sw, string path, int indent) 56  { 57  getFileName(sw, path, indent); 58 DirectoryInfo root = new DirectoryInfo(path); 59 foreach (DirectoryInfo d in root.GetDirectories()) 60  { 61 for (int i = 0; i < indent; i++) 62  { 63 sw.Write(" "); 64  } 65 sw.WriteLine("文件夾:" + d.Name); 66 getDirectory(sw, d.FullName, indent + 2); 67  sw.WriteLine(); 68  } 69 }
復制代碼

 

 

 

 

 

------------------------------------------------------


免責聲明!

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



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