天天看點

C#中Directory.GetFiles() 函數的使用(讀取目錄中的檔案)

C#中Directory.GetFiles() 函數的使用方法(讀取目錄中的檔案):

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

擷取path目錄中所有檔案

注:斜字型部分為可選參數

參數

path

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

searchPattern

em>path." id=“mt1204”>要與 path 中的檔案名比對的搜尋字元串。此參數可以包含有效文本路徑和通配符(* 和 ?)的組合(請參見“備注”),但不支援正規表達式。

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

通配符說明符比對

  • (星号)在該位置的零個或多個字元。

    ?(問号)在該位置的零個或一個字元。

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() 的一些基本用法。

參考連結:http://www.365jz.com/article/24023