精品秘无码一区二区三区老师-精品秘一区二三区免费雷安-精品蜜桃秘一区二区三区-精品蜜桃秘一区二区三区粉嫩-精品蜜桃一区二区三区-精品蜜臀国产aⅴ一区二区三区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# Directory類、DirectoryInfo類、遍歷文件夾

admin
2024年12月4日 7:50 本文熱度 432

一、Directory類

Directory 類
https://docs.microsoft.com/zh-cn/dotnet/api/system.io.directory?view=netframework-4.0

1、定義

公開用于通過目錄和子目錄進(jìn)行創(chuàng)建、移動(dòng)和枚舉的靜態(tài)方法。此類不能被繼承。

命名空間:System.IO
程序集:mscorlib.dll
繼承:Object→Directory
屬性:ComVisibleAttribute
[System.Runtime.InteropServices.ComVisible(true)]
public static class Directory
將 Directory 類用于典型的操作,例如復(fù)制、移動(dòng)、重命名、創(chuàng)建和刪除目錄。

2、Directory 類的方法

CreateDirectory(String) 在指定路徑中創(chuàng)建所有目錄和子目錄,除非它們已經(jīng)存在。
CreateDirectory(String, DirectorySecurity) 在指定路徑中創(chuàng)建所有目錄(除非已存在),并應(yīng)用指定的 Windows 安全性。
Delete(String) 從指定路徑刪除空目錄。
Delete(String, Boolean) 刪除指定的目錄,并刪除該目錄中的所有子目錄和文件(如果表示)。
EnumerateDirectories(String) 返回指定路徑中的目錄完整名稱的可枚舉集合。
EnumerateDirectories(String, String) 返回指定路徑中與搜索模式匹配的目錄完整名稱的可枚舉集合。
EnumerateDirectories(String, String, SearchOption) 返回指定路徑中與搜索模式匹配的目錄完整名稱的可枚舉集合,還可搜索子目錄。
EnumerateFiles(String) 返回指定路徑中的完整文件名的可枚舉集合。
EnumerateFiles(String, String) 返回指定路徑中與搜索模式匹配的完整文件名的可枚舉集合。
EnumerateFiles(String, String, SearchOption) 返回指定路徑中與搜索模式匹配的完整文件名的可枚舉集合,還可以搜索子目錄。
EnumerateFileSystemEntries(String) 返回指定路徑中的文件名和目錄名的可枚舉集合。
EnumerateFileSystemEntries(String, String) 返回指定路徑中與搜索模式匹配的文件名和目錄名的可枚舉集合。
EnumerateFileSystemEntries(String, String, SearchOption) 返回指定路徑中與搜索模式匹配的文件名稱和目錄名的可枚舉集合,還可以搜索子目錄。
Exists(String) 確定給定路徑是否引用磁盤上的現(xiàn)有目錄。
GetAccessControl(String) 獲取 DirectorySecurity 對(duì)象,該對(duì)象封裝指定目錄的訪問控制列表 (ACL) 項(xiàng)。
GetAccessControl(String, AccessControlSections) 獲取一個(gè) DirectorySecurity 對(duì)象,它封裝指定目錄的指定類型的訪問控制列表 (ACL) 條目。
GetCreationTime(String) 獲取目錄的創(chuàng)建日期和時(shí)間。
GetCreationTimeUtc(String) 獲取目錄創(chuàng)建的日期和時(shí)間,其格式為協(xié)調(diào)通用時(shí) (UTC)。
GetCurrentDirectory() 獲取應(yīng)用程序的當(dāng)前工作目錄。
GetDirectories(String) 返回指定目錄中的子目錄的名稱(包括其路徑)。
GetDirectories(String, String) 返回指定目錄中與指定的搜索模式匹配的子目錄的名稱(包括其路徑)。
GetDirectories(String, String, SearchOption) 返回與在指定目錄中的指定搜索模式匹配的子目錄的名稱(包括其路徑),還可以選擇地搜索子目錄。
GetDirectoryRoot(String) 返回指定路徑的卷信息、根信息或兩者同時(shí)返回。
GetFiles(String) 返回指定目錄中文件的名稱(包括其路徑)。
GetFiles(String, String) 返回指定目錄中與指定的搜索模式匹配的文件的名稱(包含其路徑)。
GetFiles(String, String, SearchOption) 返回指定目錄中與指定的搜索模式匹配的文件的名稱(包含其路徑),使用某個(gè)值確定是否要搜索子目錄。
GetFileSystemEntries(String) 返回指定路徑中的所有文件和子目錄的名稱。
GetFileSystemEntries(String, String) 返回一個(gè)數(shù)組,其中包含與指定路徑中的搜索模式相匹配的文件名和目錄名稱。
GetFileSystemEntries(String, String, SearchOption) 返回指定路徑中與搜索模式匹配的所有文件名和目錄名的數(shù)組,還可以搜索子目錄。
GetLastAccessTime(String) 返回上次訪問指定文件或目錄的日期和時(shí)間。
GetLastAccessTimeUtc(String) 返回上次訪問指定文件或目錄的日期和時(shí)間,其格式為協(xié)調(diào)通用時(shí) (UTC)。
GetLastWriteTime(String) 返回上次寫入指定文件或目錄的日期和時(shí)間。
GetLastWriteTimeUtc(String) 返回上次寫入指定文件或目錄的日期和時(shí)間,其格式為協(xié)調(diào)通用時(shí) (UTC)。
GetLogicalDrives() 檢索此計(jì)算機(jī)上格式為“:\”的邏輯驅(qū)動(dòng)器的名稱。
GetParent(String) 檢索指定路徑的父目錄,包括絕對(duì)路徑和相對(duì)路徑。
Move(String, String) 將文件或目錄及其內(nèi)容移到新位置。
SetAccessControl(String, DirectorySecurity) 將 DirectorySecurity 對(duì)象描述的訪問控制列表 (ACL) 項(xiàng)應(yīng)用于指定的目錄。
SetCreationTime(String, DateTime) 為指定的文件或目錄設(shè)置創(chuàng)建日期和時(shí)間。
SetCreationTimeUtc(String, DateTime) 設(shè)置指定文件或目錄的創(chuàng)建日期和時(shí)間,其格式為協(xié)調(diào)通用時(shí) (UTC)。
SetCurrentDirectory(String) 將應(yīng)用程序的當(dāng)前工作目錄設(shè)置為指定的目錄。
SetLastAccessTime(String, DateTime) 設(shè)置上次訪問指定文件或目錄的日期和時(shí)間。
SetLastAccessTimeUtc(String, DateTime) 設(shè)置上次訪問指定文件或目錄的日期和時(shí)間,其格式為協(xié)調(diào)通用時(shí) (UTC)。
SetLastWriteTime(String, DateTime) 設(shè)置上次寫入目錄的日期和時(shí)間。
SetLastWriteTimeUtc(String, DateTime) 設(shè)置上次寫入某個(gè)目錄的日期和時(shí)間,其格式為協(xié)調(diào)通用時(shí) (UTC)。
類的 Directory 靜態(tài)方法對(duì)所有方法執(zhí)行安全檢查。如果要多次重復(fù)使用對(duì)象,請(qǐng)考慮改用相應(yīng)的實(shí)例方法 DirectoryInfo ,因?yàn)榘踩珯z查并不總是必要的。
如果只執(zhí)行一個(gè)與目錄相關(guān)的操作,則使用靜態(tài) Directory 方法而不是相應(yīng)的 DirectoryInfo 實(shí)例方法可能更有效。大多數(shù) Directory 方法都需要你正在操作的目錄的路徑。
備注:在接受字符串 path 參數(shù)的成員中,該路徑必須格式正確或引發(fā)異常。例如,如果路徑完全限定,但以空格 (“c:\temp”) 開頭,則不會(huì)修整路徑字符串,因此路徑被視為格式不正確,并且引發(fā)異常。此外,路徑或路徑組合不能完全限定兩次。例如,“c:\temp c:\windows”也會(huì)引發(fā)異常。使用接受路徑字符串的方法時(shí),請(qǐng)確保路徑格式正確。
在接受路徑的成員中,路徑可以引用文件或目錄。可以使用服務(wù)器和共享名稱的完整路徑、相對(duì)路徑或通用命名約定 (UNC) 路徑。
默認(rèn)情況下,向所有用戶授予對(duì)新目錄的完整讀/寫訪問權(quán)限。但是,應(yīng)用必須具有訪問現(xiàn)有目錄的正確安全性。
若要要求對(duì)目錄及其所有子目錄擁有權(quán)限,請(qǐng)使用目錄分隔符結(jié)束路徑字符串。(例如,“C:\Temp”授予對(duì) C:\Temp\ 及其所有子目錄的訪問權(quán)限。) 若要僅要求特定目錄的權(quán)限,請(qǐng)使用句點(diǎn)結(jié)束路徑字符串。(例如“C:\Temp\”?!?僅向 C:\Temp\ 授予對(duì)其子目錄的訪問權(quán)限。)

二、DirectoryInfo 類

DirectoryInfo 類
https://docs.microsoft.com/zh-cn/dotnet/api/system.io.directoryinfo?view=netframework-4.0

1、定義

命名空間:System.IO
程序集:mscorlib.dll
繼承:Object→MarshalByRefObject→FileSystemInfo→DirectoryInfo
屬性:SerializableAttribute,ComVisibleAttribute
公開用于創(chuàng)建、移動(dòng)和枚舉目錄和子目錄的實(shí)例方法。此類不能被繼承。

[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
使用 DirectoryInfo 類執(zhí)行典型操作,例如復(fù)制、移動(dòng)、重命名、創(chuàng)建和刪除目錄。

如果要多次重用某個(gè)對(duì)象,請(qǐng)考慮使用的實(shí)例方法(而不是 DirectoryInfo 類的相應(yīng)靜態(tài)方法 Directory ),因?yàn)榘踩珯z查并不總是必需的。

2、DirectoryInfo 類的構(gòu)造函數(shù)

DirectoryInfo(String) 初始化指定路徑上的 DirectoryInfo 類的新實(shí)例。

3、DirectoryInfo 類的字段

FullPath 表示目錄或文件的完全限定目錄。(繼承自 FileSystemInfo)
OriginalPath 最初由用戶指定的目錄(不論是相對(duì)目錄還是絕對(duì)目錄)。(繼承自 FileSystemInfo)

4、DirectoryInfo 類的屬性

Attributes 獲取或設(shè)置當(dāng)前文件或目錄的特性。(繼承自 FileSystemInfo)
CreationTime 獲取或設(shè)置當(dāng)前文件或目錄的創(chuàng)建時(shí)間。(繼承自 FileSystemInfo)
CreationTimeUtc 獲取或設(shè)置當(dāng)前文件或目錄的創(chuàng)建時(shí)間,其格式為協(xié)調(diào)世界時(shí) (UTC)。(繼承自 FileSystemInfo)
Exists 獲取指示目錄是否存在的值。
Extension 獲取文件名的擴(kuò)展名部分,包括前導(dǎo)點(diǎn) 。即使它是整個(gè)文件名,或者不存在擴(kuò)展名的空字符串。(繼承自 FileSystemInfo)
FullName 獲取目錄或文件的完整目錄。(繼承自 FileSystemInfo)
LastAccessTime 獲取或設(shè)置上次訪問當(dāng)前文件或目錄的時(shí)間。(繼承自 FileSystemInfo)
LastAccessTimeUtc 獲取或設(shè)置上次訪問當(dāng)前文件或目錄的時(shí)間,其格式為協(xié)調(diào)世界時(shí) (UTC)。(繼承自 FileSystemInfo)
LastWriteTime 獲取或設(shè)置上次寫入當(dāng)前文件或目錄的時(shí)間。(繼承自 FileSystemInfo)
LastWriteTimeUtc 獲取或設(shè)置上次寫入當(dāng)前文件或目錄的時(shí)間,其格式為協(xié)調(diào)世界時(shí) (UTC)。(繼承自 FileSystemInfo)
LinkTarget 獲取位于其中 FullName的鏈接的目標(biāo)路徑,或者 null 如果此 FileSystemInfo 實(shí)例不表示鏈接。(繼承自 FileSystemInfo)
Name 獲取此 DirectoryInfo 實(shí)例的名稱。
Parent 獲取指定的子目錄的父目錄。
Root 獲取目錄的根部分。
UnixFileMode 獲取或設(shè)置當(dāng)前文件或目錄的 Unix 文件模式。(繼承自 FileSystemInfo)

5、DirectoryInfo 類的方法

Create() 創(chuàng)建目錄。
Create(DirectorySecurity) 使用 DirectorySecurity 對(duì)象創(chuàng)建目錄。
CreateAsSymbolicLink(String) 創(chuàng)建指向指定pathToTarget位置的符號(hào)鏈接FullName。(繼承自 FileSystemInfo)
CreateObjRef(Type) 創(chuàng)建一個(gè)對(duì)象,該對(duì)象包含生成用于與遠(yuǎn)程對(duì)象進(jìn)行通信的代理所需的全部相關(guān)信息。(繼承自 MarshalByRefObject)
CreateSubdirectory(String) 在指定路徑上創(chuàng)建一個(gè)或多個(gè)子目錄。指定路徑可以是相對(duì)于 DirectoryInfo 類的此實(shí)例的路徑。
CreateSubdirectory(String, DirectorySecurity) 使用指定的安全性在指定的路徑上創(chuàng)建一個(gè)或多個(gè)子目錄。指定路徑可以是相對(duì)于 DirectoryInfo 類的此實(shí)例的路徑。
Delete() 如果此 DirectoryInfo 為空則將其刪除。
Delete(Boolean) 刪除 DirectoryInfo 的此實(shí)例,指定是否刪除子目錄和文件。
EnumerateDirectories() 返回當(dāng)前目錄中的目錄信息的可枚舉集合。
EnumerateDirectories(String) 返回與指定的搜索模式匹配的目錄信息的可枚舉集合。
EnumerateDirectories(String, SearchOption) 返回與指定的搜索模式和搜索子目錄選項(xiàng)匹配的目錄信息的可枚舉集合。
EnumerateFiles() 返回當(dāng)前目錄中的文件信息的可枚舉集合。
EnumerateFiles(String) 返回與搜索模式匹配的文件信息的可枚舉集合。
EnumerateFiles(String, SearchOption) 返回與指定的搜索模式和搜索子目錄選項(xiàng)匹配的文件信息的可枚舉集合。
EnumerateFileSystemInfos() 返回當(dāng)前目錄中的文件系統(tǒng)信息的可枚舉集合。
EnumerateFileSystemInfos(String) 返回與指定的搜索模式匹配的文件系統(tǒng)信息的可枚舉集合。
EnumerateFileSystemInfos(String, SearchOption) 返回與指定的搜索模式和搜索子目錄選項(xiàng)匹配的文件系統(tǒng)信息的可枚舉集合。
Equals(Object) 確定指定對(duì)象是否等于當(dāng)前對(duì)象。(繼承自 Object)
GetAccessControl() 獲取 DirectorySecurity 對(duì)象,該對(duì)象封裝當(dāng)前 DirectoryInfo 對(duì)象所描述的目錄的訪問控制列表 (ACL) 項(xiàng)。
GetAccessControl(AccessControlSections) 獲取 DirectorySecurity 對(duì)象,該對(duì)象封裝當(dāng)前 DirectoryInfo 對(duì)象所描述的目錄的指定類型的訪問控制列表 (ACL) 項(xiàng)。
GetDirectories() 返回當(dāng)前目錄的子目錄。
GetDirectories(String) 返回當(dāng)前 DirectoryInfo 中、與給定搜索條件匹配的目錄的數(shù)組。
GetDirectories(String, SearchOption) 返回當(dāng)前 DirectoryInfo 中與給定的搜索條件匹配并使用某個(gè)值確定是否在子目錄中搜索的目錄的數(shù)組。
GetFiles() 返回當(dāng)前目錄的文件列表。
GetFiles(String) 返回當(dāng)前目錄中與給定的搜索模式匹配的文件列表。
GetFiles(String, SearchOption) 返回與給定的搜索模式匹配并且使用某個(gè)值確定是否在子目錄中進(jìn)行搜索的當(dāng)前目錄的文件列表。
GetFileSystemInfos() 返回表示某個(gè)目錄中所有文件和子目錄的強(qiáng)類型 FileSystemInfo 項(xiàng)的數(shù)組。
GetFileSystemInfos(String) 檢索表示與指定的搜索條件匹配的文件和子目錄的強(qiáng)類型 FileSystemInfo 對(duì)象的數(shù)組。
GetFileSystemInfos(String, SearchOption) 檢索表示與指定的搜索條件匹配的文件和子目錄的 FileSystemInfo 對(duì)象的數(shù)組。
GetHashCode() 作為默認(rèn)哈希函數(shù)。(繼承自 Object)
GetLifetimeService() 檢索控制此實(shí)例的生存期策略的當(dāng)前生存期服務(wù)對(duì)象。(繼承自 MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext) 設(shè)置帶有文件名和附加異常信息的 SerializationInfo 對(duì)象。(繼承自 FileSystemInfo)
GetType() 獲取當(dāng)前實(shí)例的 Type。(繼承自 Object)
InitializeLifetimeService() 獲取生存期服務(wù)對(duì)象來控制此實(shí)例的生存期策略。(繼承自 MarshalByRefObject)
MemberwiseClone() 創(chuàng)建當(dāng)前 Object 的淺表副本。(繼承自 Object)
MemberwiseClone(Boolean) 創(chuàng)建當(dāng)前 MarshalByRefObject 對(duì)象的淺表副本。(繼承自 MarshalByRefObject)
MoveTo(String) 將 DirectoryInfo 實(shí)例及其內(nèi)容移動(dòng)到新路徑。
Refresh() 刷新對(duì)象的狀態(tài)。(繼承自 FileSystemInfo)
ResolveLinkTarget(Boolean) 獲取指定鏈接的目標(biāo)。(繼承自 FileSystemInfo)
SetAccessControl(DirectorySecurity) 將 DirectorySecurity 對(duì)象所描述的訪問控制列表 (ACL) 項(xiàng)應(yīng)用于當(dāng)前 DirectoryInfo 對(duì)象所描述的目錄。
ToString() 返回傳遞給 DirectoryInfo 構(gòu)造函數(shù)的原始路徑。使用 FullName 或 Name 屬性作為完整路徑或文件/目錄名,而不是此方法。
備注:Directory類與DirectoryInfo類基本相同,但DirectoryInfo 類能建立對(duì)象。如果執(zhí)行單一調(diào)用就使用Directory類,如果執(zhí)行一系列調(diào)用,就使用實(shí)例化的DirectoryInfo的對(duì)象

三、示例

1、判斷文件夾是否存在

using System;
using System.IO;

namespace _20220831_1
{
   class Program
   {
       static void Main(string[] args)
       {
           //Directory類的Exists方法
           bool a1 = Directory.Exists("C:\\Program Files");
           Console.WriteLine(a1);

           //DirectoryInfo類的Exists屬性
           DirectoryInfo a2 = new DirectoryInfo("C:\\Program Files");
           if(a2.Exists)
           {
               Console.WriteLine("此文件夾存在");
           }
           else
           {
               Console.WriteLine("此文件夾不存在");
           }
       }
   }
}

2、創(chuàng)建文件夾

using System;
using System.IO;

namespace _20220831_1
{
   class Program
   {
       static void Main(string[] args)
       {
           //Directory類的CreateDirectory方法
           Directory.CreateDirectory("d:\\新建文件夾(1)");

           //DirectoryInfo類的Create方法
           DirectoryInfo x1 = new DirectoryInfo("d:\\新建文件夾(2)");
           x1.Create();
       }
   }
}

3、移動(dòng)文件夾

using System;
using System.IO;

namespace _20220831_1
{
   class Program
   {
       static void Main(string[] args)
       {
           //Directory類的Move方法
           Directory.Move("d:\\新建文件夾(1)", "c:\\新建文件夾(1)");

           //DirectoryInfo類的MoveTo方法
           DirectoryInfo x1 = new DirectoryInfo("d:\\新建文件夾(2)");
           x1.MoveTo("c:\\新建文件夾(2)");
       }
   }
}

4、刪除文件夾

using System;
using System.IO;

namespace _20220831_1
{
   class Program
   {
       static void Main(string[] args)
       {
           //Directory類的Delete方法
           Directory.Delete("d:\\新建文件夾(1)");

           //DirectoryInfo類的Delete方法
           DirectoryInfo x1 = new DirectoryInfo("d:\\新建文件夾(2)");
           x1.Delete();
       }
   }
}

四、遍歷文件夾

在遍歷文件夾時(shí),可以分別使用DirectoryInfo類提供的GetDirectories方法、GetFiles方法、GetFileSystemInfos方法來實(shí)現(xiàn)。

備注:一般在遍歷文件夾時(shí)會(huì)使用GetFileSystemInfos方法,因?yàn)镚etDirectories方法只遍歷文件夾中的子文件夾,GetFiles方法方法只遍歷文件夾中的文件,而GetFileSystemInfos方法遍歷文件夾中國(guó)所有的子文件夾和文件。

1、DirectoryInfo.GetDirectories方法?

重載

GetDirectories() 返回當(dāng)前目錄的子目錄。

GetDirectories(String) 返回當(dāng)前 DirectoryInfo 中、與給定搜索條件匹配的目錄的數(shù)組。

GetDirectories(String, SearchOption) 返回當(dāng)前 DirectoryInfo 中與給定的搜索條件匹配并使用某個(gè)值確定是否在子目錄中搜索的目錄的數(shù)組。

GetDirectories()

返回當(dāng)前目錄的子目錄。

public System.IO.DirectoryInfo[] GetDirectories ();

參數(shù):

(返回值)DirectoryInfo[]:一個(gè) DirectoryInfo 對(duì)象數(shù)組。

GetDirectories(String)
返回當(dāng)前 DirectoryInfo 中、與給定搜索條件匹配的目錄的數(shù)組。
public System.IO.DirectoryInfo[] GetDirectories (string searchPattern);

參數(shù):

searchPattern:要與目錄名匹配的搜索字符串。此參數(shù)可以包含有效文本路徑和通配符( 和 ?)的組合,但不支持正則表達(dá)式。*

(返回值)DirectoryInfo[]:與 DirectoryInfo 匹配的 searchPattern 類型的數(shù)組。

GetDirectories(String, SearchOption)
返回當(dāng)前 DirectoryInfo 中與給定的搜索條件匹配并使用某個(gè)值確定是否在子目錄中搜索的目錄的數(shù)組。
public System.IO.DirectoryInfo[] GetDirectories (string searchPattern, System.IO.SearchOption searchOption);

參數(shù):
searchPattern:要與目錄名匹配的搜索字符串。此參數(shù)可以包含有效文本路徑和通配符( 和 ?)的組合,但不支持正則表達(dá)式。
searchOption:用于指定搜索操作是應(yīng)僅包含當(dāng)前目錄還是應(yīng)包含所有子目錄的枚舉值之一。
(返回值)DirectoryInfo[]:與 DirectoryInfo 匹配的 searchPattern 類型的數(shù)組。
GetDirectories()案例
*

using System;
using System.IO;
namespace _20220901_1
{
   class Program
   {
       static void Main(string[] args)
       {
           // 引用一個(gè)目錄。
           DirectoryInfo di = new DirectoryInfo("c:\\");
           // 獲取對(duì)該目錄中每個(gè)目錄的引用。
           DirectoryInfo[] diArr = di.GetDirectories();
           // 顯示目錄的名稱。
           foreach (DirectoryInfo dri in diArr)
               Console.WriteLine(dri.Name);
       }
   }
}

GetDirectories(String) 案例

using System;
using System.IO;
namespace _20220901_1
{
   class Program
   {
       static void Main(string[] args)
       {
           try
           {
               DirectoryInfo di = new DirectoryInfo(@"D:\Documents\Desktop");

               DirectoryInfo[] dirs = di.GetDirectories("*p*");
               Console.WriteLine("此目錄中包含字母p的文件夾數(shù)量為 {0}個(gè)。\n", dirs.Length);

               foreach (DirectoryInfo diNext in dirs)
               {
                   Console.WriteLine("名為 {0} 的文件夾內(nèi)有{1}個(gè)文件", diNext,diNext.GetFiles().Length);
               }
           }
           catch (Exception e)
           {
               Console.WriteLine("“這個(gè)過程失敗: {0}", e.ToString());
           }
       }
   }
}

GetDirectories(String, SearchOption) 案例

using System;
using System.IO;
namespace _2024
{
   class Program
   {
       static void Main(string[] args)
       {
           string path = @"c:\";
           string searchPattern = "
c*";

           DirectoryInfo di = new DirectoryInfo(path);

           DirectoryInfo[] directories =di.GetDirectories(searchPattern, SearchOption.TopDirectoryOnly);
           FileInfo[] files =di.GetFiles(searchPattern, SearchOption.TopDirectoryOnly);

           Console.WriteLine("在{0}目錄中,以字母\"c\"開頭的文件有:", path);

           foreach (DirectoryInfo dir in directories)
           {
               Console.WriteLine("{0,-25} {1,25}", dir.FullName, dir.LastWriteTime);
           }
           Console.WriteLine();
           Console.WriteLine("在{0}目錄中,以字母\"c\" 開頭的文件: ", path);
           foreach (FileInfo file in files)
           {
               Console.WriteLine("{0,-25} {1,25}", file.Name, file.LastWriteTime);
           }
       }
   }
}

2、DirectoryInfo.GetFiles 方法

重載

GetFiles(String, SearchOption) 返回與給定的搜索模式匹配并且使用某個(gè)值確定是否在子目錄中進(jìn)行搜索的當(dāng)前目錄的文件列表。

GetFiles() 返回當(dāng)前目錄的文件列表。

GetFiles(String) 返回當(dāng)前目錄中與給定的搜索模式匹配的文件列表。

GetFiles(String, SearchOption)

返回與給定的搜索模式匹配并且使用某個(gè)值確定是否在子目錄中進(jìn)行搜索的當(dāng)前目錄的文件列表。

public System.IO.FileInfo[] GetFiles (string searchPattern, System.IO.SearchOption searchOption);

參數(shù):

searchPattern:要與文件名匹配的搜索字符串。此參數(shù)可以包含有效文本路徑和通配符(* 和 ?)的組合,但不支持正則表達(dá)式。

searchOption:用于指定搜索操作是應(yīng)僅包含當(dāng)前目錄還是應(yīng)包含所有子目錄的枚舉值之一。

(返回值)FileInfo[]:FileInfo 類型的數(shù)組。

GetFiles()

返回當(dāng)前目錄的文件列表。

public System.IO.FileInfo[] GetFiles ();

參數(shù):

(返回值)FileInfo[]:FileInfo 類型的數(shù)組。

GetFiles(String)
返回當(dāng)前目錄中與給定的搜索模式匹配的文件列表。
public System.IO.FileInfo[] GetFiles (string searchPattern);
參數(shù):
searchPattern:要與文件名匹配的搜索字符串。此參數(shù)可以包含有效文本路徑和通配符(* 和 ?)的組合,但不支持正則表達(dá)式。
(返回值)FileInfo[]:FileInfo 類型的數(shù)組。

3、DirectoryInfo.GetFileSystemInfos 方法

    重載?

GetFileSystemInfos() 返回表示某個(gè)目錄中所有文件和子目錄的強(qiáng)類型 FileSystemInfo 項(xiàng)的數(shù)組。

GetFileSystemInfos(String) 檢索表示與指定的搜索條件匹配的文件和子目錄的強(qiáng)類型 FileSystemInfo 對(duì)象的數(shù)組。

GetFileSystemInfos(String, SearchOption) 檢索表示與指定的搜索條件匹配的文件和子目錄的 FileSystemInfo 對(duì)象的數(shù)組。

GetFileSystemInfos()

返回表示某個(gè)目錄中所有文件和子目錄的強(qiáng)類型 FileSystemInfo 項(xiàng)的數(shù)組。

public System.IO.FileSystemInfo[] GetFileSystemInfos ();

參數(shù):

(返回值)FileSystemInfo[]:強(qiáng)類型 FileSystemInfo 項(xiàng)的數(shù)組。

GetFileSystemInfos(String)

檢索表示與指定的搜索條件匹配的文件和子目錄的強(qiáng)類型 FileSystemInfo 對(duì)象的數(shù)組。

public System.IO.FileSystemInfo[] GetFileSystemInfos (string searchPattern);

參數(shù):

searchPattern:要與目錄和文件的名稱匹配的搜索字符串。此參數(shù)可以包含有效文本路徑和通配符(* 和 ?)的組合,但不支持正則表達(dá)式。

(返回值)FileSystemInfo[]:與搜索條件匹配的強(qiáng)類型 FileSystemInfo 對(duì)象的數(shù)組。

GetFileSystemInfos(String, SearchOption)
檢索表示與指定的搜索條件匹配的文件和子目錄的 FileSystemInfo 對(duì)象的數(shù)組。
public System.IO.FileSystemInfo[] GetFileSystemInfos (string searchPattern, System.IO.SearchOption searchOption);
參數(shù):
searchPattern:要與目錄和文件的名稱匹配的搜索字符串。此參數(shù)可以包含有效文本路徑和通配符(* 和 ?)的組合,但不支持正則表達(dá)式。
searchOption:用于指定搜索操作是應(yīng)僅包含當(dāng)前目錄還是應(yīng)包含所有子目錄的枚舉值之一。默認(rèn)值是 TopDirectoryOnly。
(返回值)FileSystemInfo[]:與搜索條件匹配的文件系統(tǒng)項(xiàng)的數(shù)組。

五、案例

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace _20220726_1
{
   class Program
   {
       static void Main(string[] args)
       {
           //一、在d盤下創(chuàng)建一個(gè)01文件夾(如果有,不會(huì)替換)
           Directory.CreateDirectory("d:/01");

           //二、獲取此目錄下jpg后綴的文件,并將名稱顯示出來
           string[] path1 = Directory.GetFiles(@"D:\迅雷下載", "*.jpg");
           for (int i = 0; i < path1.Length; i++)
           {
               Console.WriteLine(path1[i]);
           }
           //三、獲取指定目錄下所有文件夾的全路徑
           string[] path2=Directory.GetDirectories(@"D:\迅雷下載");
           for (int j = 0; j < path2.Length; j++)
           {
               Console.WriteLine(path2[j]);
           }

           //四、創(chuàng)建文件夾
           if (Directory.Exists(@"D:/01/02/"))//在目錄后面一定要加/,不然命名會(huì)出錯(cuò)
            //如果沒有此目錄,不會(huì)自動(dòng)添加,更不會(huì)執(zhí)行后續(xù)步驟
           {
               for(int k = 0; k < 100; k++)
               {
                   Directory.CreateDirectory(@"D:/01/02/" + k);
               }
           }
           Console.WriteLine("ok");
           Console.ReadKey();

           //五、刪除文件夾
           Directory.Delete(@"D:/01/02",true);
           Console.ReadKey();

       }
   }
}

六、案例

using System;
using System.IO;
using System.Windows.Forms;

namespace Demo
{
   public partial class Form1 : Form
   {
       public Form1()
       {
           InitializeComponent();
       }

       private void button1_Click(object sender, EventArgs e)
       {
           listView1.Items.Clear();
           if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
           {
               textBox1.Text = folderBrowserDialog1.SelectedPath;//將選擇的文件夾的路徑 放到文本框中
               DirectoryInfo df1 = new DirectoryInfo(textBox1.Text);//實(shí)例化DirectoryInfo對(duì)象

               FileSystemInfo[] arr1 = df1.GetFileSystemInfos();//獲取指定目錄下的所有子目錄及文件類型

               foreach (FileSystemInfo arr2 in arr1)
               {
                   if (arr2 is DirectoryInfo)//判斷是否文件夾
                   {
                       DirectoryInfo x1 = new DirectoryInfo(arr2.FullName);//使用獲取的文件夾名稱實(shí)例化DirectoryInfo對(duì)象
                       
                       //________________________________方法1___________________________________
                       ListViewItem lvt1 = new ListViewItem();
                       lvt1.Text = x1.Name;//文件夾的名字
                       lvt1.SubItems.Add(x1.FullName);//文件夾的路徑
                       lvt1.SubItems.Add("");//文件夾沒有大小
                       lvt1.SubItems.Add(x1.CreationTime.ToShortDateString());
                       this.listView1.Items.Add(lvt1);

                       //________________________________方法2___________________________________//為L(zhǎng)istView控件添加文件夾信息
                       //listView1.Items.Add(x1.Name);
                       //listView1.Items[listView1.Items.Count - 1].SubItems.Add(x1.FullName);
                       //listView1.Items[listView1.Items.Count - 1].SubItems.Add("");
                       //listView1.Items[listView1.Items.Count - 1].SubItems.Add(x1.CreationTime.ToShortDateString());
                   }
                   else
                   {
                       //使用獲取的文件名稱實(shí)例化FileInfo對(duì)象
                       FileInfo x2 = new FileInfo(arr2.FullName);
                       //為L(zhǎng)istView控件添加文件信息
                       listView1.Items.Add(x2.Name);
                       listView1.Items[listView1.Items.Count - 1].SubItems.Add(x2.FullName);
                       listView1.Items[listView1.Items.Count - 1].SubItems.Add(x2.Length.ToString());
                       listView1.Items[listView1.Items.Count - 1].SubItems.Add(x2.CreationTime.ToShortDateString());
                   }
               }
           }
       }
   }
}

該文章在 2024/12/4 16:50:03 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 無码一区中文字幕少妇熟女网站 | 日日摸天天碰中文字幕你懂的 | 国产91丝袜在线观看 | 99热精品一区 | 亚洲制服在线中文 | 国产三级电影在线观看一区二区三 | 高清无码中文字幕影片 | 亚洲伦理片一区二区三区 | 爆乳熟妇一区二区三区 | 亚洲午夜国产精品无码 | 日本午夜精品一区二区三区电影 | 亚洲人妖无码视频 | 中文字幕三级不卡无码 | 亚洲精品一线二线三线无人区 | 国产深夜福利在线观看网站 | 91短视频在线观看免费最新 | 中日韩视频在线 | 不卡的高清视频 | 五月激激激综合网色播免费 | 国产亚洲综合区成人国产系列 | 国产亚洲精品日韩综合网 | 成人无码a级毛片免费 | 亚洲欧美成人精品一区二区 | 精东传媒VS天美传媒在线 | 国产午夜精品一区二区理论影院 | 国产亚洲999精品AA片在线爽 | 亚洲熟妇无码aⅴ在线播放 亚洲熟妇无码a | 亚洲aⅴ无码成人网站国产app | 日韩av片无码一区二区不卡 | 日日碰狠狠躁久久躁婷婷 | 免费人妻aⅴ无码专 | 国产成人亚洲综合a∨婷婷 国产成人亚洲综合a婷婷 | 国产成人精品永久免费视频 | 国产成人亚洲综合无码99 | 麻豆午夜区吴梦 | 亚洲欧洲另类综合自拍 | 欧美国产精品一区二 | 人妻精品丰满熟妇区 | 日本成人精品 | 国产成人午夜精品5599 | 亚洲日韩va无码中文字幕 |