正文
#基礎知識
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
按 Ctrl+C 復制代碼
按 Ctrl+C 復制代碼
#只獲取目錄下一級的文件夾與文件
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 }
------------------------------------------------------
作者:willingtolove
出處:http://www.cnblogs.com/willingtolove/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
分類:
C#
posted @
2018-06-27 20:54 willingtolove 閱讀(25571) 評論(0) 編輯 收藏
昵稱:
退出 訂閱評論
[Ctrl+Enter快捷鍵提交]
【推薦】百度雲“豬”你開年行大運,紅包瘋狂拿,低至1折
【推薦】專業便捷的企業級代碼托管服務 - Gitee 碼雲
【活動】2019第四屆全球人工技術大會解碼“智能+時代”