您現在的位置: 365建站網 > 365學習 > C#中Directory.GetFiles() 函數的使用方法(讀取目錄中的文件)

C#中Directory.GetFiles() 函數的使用方法(讀取目錄中的文件)

文章來源:365jz.com     點擊數:8400    更新時間:2017-12-10 09:02   參與評論
C#中Directory.GetFiles() 函數的使用方法(讀取目錄中的文件):

C#Directory.GetFiles(string path , string searchPattern, SearchOption searchOption )

獲取path目錄中所有文件

注:紅色字體部分為可選參數

參數

path

要搜索的目錄的相對或絕對路徑。此字符串不區分大小寫。

searchPattern

em>path</em>." id="mt1204">要與 path 中的文件名匹配的搜索字符串。此參數可以包含有效文本路徑和通配符(* 和 ?)的組合(請參見“備注”),但不支持正則表達式。

em>path</em>.">searchPattern可以是文本和通配符的組合字符,但不支持正則表達式。em>searchPattern</em>.">em>searchPattern</em>.">在允許使用下面的通配符說明符searchPattern。

通配符說明符

匹配

* (星號)

在該位置的零個或多個字符。

?(問號)

在該位置的零個或一個字符。

   詳情可參見:https://msdn.microsoft.com/zh-cn/library/ms143316(v=vs.110).aspx
     經本人測試發現:
     "*.mat"可搜索到"box.mat"、"box.mat1"等格式的文件,但是搜索不到文件"box.mat.meta"
 
searchOption

用于指定搜索操作是應包含所有子目錄還是僅包含當前目錄的枚舉值之一。

代碼如下:

using System;
using System.Runtime.InteropServices;
namespace System.IO
{
[ComVisible (true)]
[Serializable]
public enum SearchOption
{
  TopDirectoryOnly,
  AllDirectories
}
}

SearchOption.TopDirectoryOnly  默認選項,僅包含當前目錄

SearchOption.AllDirectories   包含所有子目錄


 


返回值

Type: System.String[]

指定目錄中與指定的搜索模式和選項匹配的文件的完整名稱(包含路徑)的數組;如果未找到任何文件,則為空數組。

 

1、path使用相對路徑

string path = "Assets/model";

string[] files = Directory.GetFiles(path) ;

可通過Directory.GetCurrentDirectory()查看當前路徑。

 

2、path使用絕對路徑

string path = "D:/UnityDemo/Assets/model"

string[] files = Directory.GetFiles(path

C# Directory.GetFiles()獲取多個類型格式的文件

第一種方式
System.IO.Directory.GetFiles()獲取多個類型格式的文件
System.IO.Directory.GetFiles("c:\","(*.exe|*.txt)");

第二種方式
var files = Directory.GetFiles("C:\\path", "*.*", SearchOption.AllDirectories)
.Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));

但這種寫法應該只有VS2008才支持,VS2005不支持

  directoryinfo 既可以獲取到所有文件夾,也可以獲取到所有文件;directoryinfo GetDirectories() 是獲取指定目錄的所有文件夾,directoryinfo GetFiles() 是獲取指定目錄的所有文件。

  有的時候寫代碼要獲取幾種指定類型的文件,例如要獲取指定目錄的所有視頻文件,視頻文件有很多種格式,如 rmvb、rm、avi、wav、mkv、mp4 等等,而 directoryinfo GetFiles() 一次只能傳遞一種格式的參數,所以就得分開獲取,在介紹獲取方法之前,先看 directoryinfo GetFiles() 的一些基本用法。



  一、C# directoryinfo getfiles獲取所有文件

  如果要獲取指定目錄下的所有文件,可用以下代碼:

 

  /// <summary>
  /// C#獲取指定目錄下的所有文件
  /// </summary>
  /// <param name="filePath">路徑</param>
  private void GetFiles(string filePath)
  {
    DirectoryInfo di = new DirectoryInfo(filePath);
    FileInfo[] afi = di.GetFiles("*.*");//*.*可以不要
  }


  調用方法:GetFiles(@"G:\xq\test");



  二、directoryinfo getfiles獲取一種指定類型文件

  假如要獲取指定目錄下所有 .dat 文件,跟方法也一樣,只不過把 *.* 改為 *.dat 即可,代碼如下:

 

  /// <summary>
  /// C#獲取一種指定類型文件
  /// </summary>
  /// <param name="filePath">路徑</param>
  private void GetFiles(string filePath)
  {
    DirectoryInfo di = new DirectoryInfo(filePath);
    FileInfo[] afi = di.GetFiles("*.dat");
  }


  調用方法:GetFiles(@"G:\xq\test");



  三、directoryinfo getfiles獲取多種指定類型文件

  由于 getfiles() 一次只能獲到一種類型的文件,所以只能先獲取到指定目錄下的所有文件,再循環判斷每個文件是否是要獲取的文件;假如獲取指定目錄下的所有視頻文件,實現代碼如下:

 

  /// <summary>
  /// C#獲取指定目錄下多種指定類型文件
  /// </summary>
  /// <param name="filePath">路徑</param>
  private void GetVideoFiles(string filePath)
  {
    DirectoryInfo di = new DirectoryInfo(filePath);
    FileInfo[] afi = di.GetFiles("*.*");
    string fileName;
    IList<string> list = new List<string>();

    for (int i = 0; i < afi.Length; i++)
    {
      fileName = afi[i].Name.ToLower();
      if (fileName.EndsWith(".rmvb") || fileName.EndsWith(".rm") || fileName.EndsWith(".avi") || fileName.EndsWith(".mp4"))
      {
        list.Add(fileName);
      }
    }
  }


  如果不同類型的文件要求不同的操作,把并列的條件改 if(){} else if(){} 或 switch 語句即可。

  調用方法:GetVideoFiles(@"G:\xq\test");

如對本文有疑問,請提交到交流論壇,廣大熱心網友會為你解答??! 點擊進入論壇


發表評論 (8400人查看,0條評論)
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
用戶名: 驗證碼: 點擊我更換圖片
最新評論
------分隔線----------------------------
自拍偷拍福力视频,偷拍国际精品,麻豆一区福利电影,国产网红视频午夜福利,se视频大全,久久国产AV影院 gogo全球专业大尺度高清人体| 韩国19禁床震无遮掩免费| 在线av视频| 爱情岛av永久网址| 漂亮的邻居电影完整版| 日本www一道久久久免费| 午夜看黄神器| 色综合久久中文综合网| 光棍影院22019最新版| 人妻系列无码专区久久五月天| 99精品国产高清一区二区| 连开两个女同学的嫩苞| 欧美成年性h版影视中文字幕| 久久精品人人做人人爽老司机| 美女裸体a片免费视频| 男人j进女屁股视频免费| 波多野结衣的巨乳教师| 先锋影音最新av资源网| 我在开会他在下添的好爽| 亚洲 美腿 欧美 偷拍| 一本到高清视频在线观看三区| 人c交zo0x| 免费可看黄的视频网站| 高挑美女被遭强高潮摸下面| 少妇与子乱| 清欢H傅临川| 日韩亚洲国产综合αv高清| 免费无码av一区二区| 中国人在线观看视频播放| 最刺激的交换夫妇中文字幕| 成年无码av动漫网站天堂网| http://www.napasornthai.com