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

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

在 C# 中實現(xiàn)的目錄基礎操作

admin
2024年12月19日 17:46 本文熱度 496

前言

在開發(fā)應用程序過程中,對操作系統(tǒng)上的文件夾存儲文件和子文件夾操作是常見的需求。.NET中的Directory類提供了處理文件目錄的功能。本文介紹如何讀取文件夾的屬性、獲取文件夾的大小及文件個數(shù)、創(chuàng)建文件夾、遍歷文件夾中的所有文件、移動文件夾和刪除文件夾等常見基礎操作。

Directory類提供了用于創(chuàng)建、復制、移動和刪除目錄和子目錄的靜態(tài)方法。在使用前,我們需要導入System.IO命名空間。

基礎操作

1、校驗目錄是否存

Exists方法是判斷指定的文件目錄是否存在。下面是校驗目錄是否存的代碼段:

string path = @"C:\Temp";// 校驗目錄是否存在,如果不存在則創(chuàng)建if (!Directory.Exists(path)){}

2、創(chuàng)建文件目錄

CreateDirectory方法是在指定路徑中創(chuàng)建具有指定安全性的目錄或文件夾。如果文件目錄是在系統(tǒng)盤(如C:),我們的應用程序需要以管理員權限運行。下面是創(chuàng)建文件目錄的代碼段:

string path = @"C:\Temp";string subPath = @"C:\Temp\test";// 校驗目錄是否存在,如果不存在則創(chuàng)建if (!Directory.Exists(path)){    // 創(chuàng)建目錄    Directory.CreateDirectory(path);}// 校驗目錄是否存在,如果不存在則創(chuàng)建if (!Directory.Exists(subPath)) {    // 創(chuàng)建子目錄    Directory.CreateDirectory(subPath);}

3、刪除文件目錄

Delete方法是從指定路徑中永久刪除空文件目錄,如果文件夾包含子文件夾和文件,則必須先刪除它們,然后才能刪除文件夾。下面是刪除文件目錄的代碼段:

// 校驗目錄是否存在,如果存在才執(zhí)行刪除if (Directory.Exists(subPath)){    // 刪除目錄 【非空目錄報錯】    Directory.Delete(subPath);}// 校驗目錄是否存在,如果存在才執(zhí)行刪除if (Directory.Exists(subPath)){    // 刪除目錄 及所有子目錄與文件    Directory.Delete(subPath,true);}

4、移動文件目錄

Move方法將現(xiàn)有目錄移動到具有完整路徑的新指定目錄,它有原目錄與目標目錄兩個參數(shù)。下面是移動文件目錄的代碼段:

string sourcePath = @"C:\Temp\test";string destPath = @"C:\Temp\dest";try{    Directory.Move(sourcePath, destPath);}catch (IOException ex){    Console.WriteLine(ex.Message);}

5、復制文件目錄

下面是復制文件目錄代碼段:

public class DirectoryExtend{    /// <summary>    /// 復制目錄    /// </summary>    /// <param name="source"></param>    /// <param name="target"></param>    public static void Copy(string source, string target)    {        try        {            if (!Directory.Exists(source))            {                throw new DirectoryNotFoundException($"復制原目錄不存在: {source}");            }            // 如果目標目錄不存在,則創(chuàng)建            if (!Directory.Exists(target))            {                Directory.CreateDirectory(target);            }            DirectoryInfo sourceDirectory = new DirectoryInfo(source);            DirectoryInfo[] subDirectorys = sourceDirectory.GetDirectories();            // 獲取目錄中的文件并將其復制到新位置            FileInfo[] files = sourceDirectory.GetFiles();            foreach (FileInfo file in files)            {                string tempPath = Path.Combine(target, file.Name);                file.CopyTo(tempPath, false);            }            // 如果要復制子目錄,請將它們及其內容復制到新位置            foreach (DirectoryInfo sub in subDirectorys)            {                string tempPath = Path.Combine(target, sub.Name);                Copy(sub.FullName, tempPath);            }        }        catc h(Exception ex)         {            throw ex;        }    }}string sourcePath = @"C:\Temp\test";string destPath = @"C:\Temp\dest";DirectoryExtend.Copy(sourcePath, destPath);

6、獲取和設置目錄創(chuàng)建時間

SetCreationTimeGetCreationTime方法用于設置和獲取指定目錄的創(chuàng)建日期和時間。下面是獲取和設置目錄創(chuàng)建時間的代碼段:

// 設置目錄創(chuàng)建時間DateTime dateTime= Directory.GetCreationTime(path);Console.WriteLine(dateTime.ToString("yyyy-MM-dd HH:mm:ss"));// 注意,如果目錄被打開,則修改失敗,會提示異常// 獲取和設置目錄創(chuàng)建時間Directory.SetCreationTime(path, DateTime.Now);

7、獲取和設置目錄上次訪問時間

SetLastAccessTimeGetLastAccessTime方法用于設置和獲取指定目錄的上次訪問日期和時間。下面是獲取和設置目錄上次訪問時間的代碼段:

// 設置目錄上次訪問時間DateTime dateTime =  Directory.GetLastAccessTime(path);Console.WriteLine(dateTime.ToString("yyyy-MM-dd HH:mm:ss"));// 獲取目錄上次訪問時間Directory.SetLastAccessTime(path, DateTime.Now);

8、獲取和設置目錄上次寫入時間

SetLastWriteTimeGetLastWriteTime方法用于設置和獲取指定目錄的上次寫入日期和時間。下面是設置和獲取目錄的上次寫入日期和時間的代碼段。

// 獲取指定目錄的上次寫入日期和時間DateTime dateTime = Directory.GetLastWriteTime(path);// 設置指定目錄的上次寫入日期和時間Directory.SetLastWriteTime(path, DateTime.Now);

9、枚舉目錄

EnumerateDirectories方法返回指定目錄中目錄名稱的可枚舉集合,下面是枚舉目錄的代碼段:
var dirs = from dir in    Directory.EnumerateDirectories(path)    select dir;    Console.WriteLine("目錄數(shù): {0}", dirs.Count<string>().ToString());// 遍歷子目錄foreach (var dir in dirs){    Console.WriteLine("{0}", dir.Substring(dir.LastIndexOf("\\") + 1));}

10、獲取并設置當前目錄

SetCurrentDirectory和 GetCurrentDirectory方法是指定的目錄設置為當前目錄和返回當前目錄。下面是獲取和設置當前目錄的代碼段:
// 設置當前目錄Directory.SetCurrentDirectory(path);// 獲取當前目錄Console.WriteLine(Directory.GetCurrentDirectory());

11、獲取子目錄

GetDirectories 方法加載目錄的所有子目錄。要獲取所有子目錄,我們需要遞歸讀取子目錄。下面是獲取子目錄的代碼段:
// 獲取子目錄string[] subdirectorys = Directory.GetDirectories(path);
下面是使用遞歸獲取所有子目錄的代碼段:
/// <summary>/// /// </summary>/// <param name="directory"></param>public static void GetSubDirectories(string directory){    string[] subdirectoryEntries = Directory.GetDirectories(directory);    // 循環(huán)查看它們是否有其他子目錄    foreach (string subdirectory in subdirectoryEntries)    {        LoadSubDirectorys(subdirectory);    }}/// <summary>/// /// </summary>/// <param name="directory"></param>private static void LoadSubDirectorys(string directory){    Console.WriteLine(directory);    string[] subDirectorys = Directory.GetDirectories(directory);    foreach (string subdirectory in subDirectorys)    {        LoadSubDirectorys(subdirectory);    }}

12、獲取目錄中的文件

GetFiles 方法獲取指定目錄中的文件列表,下面是獲取目錄中的文件的代碼段:
string path = @"C:\Temp";string[] files= Directory.GetFiles(path);foreach (string fileName in files){    Console.WriteLine(fileName);}

13、獲取根目錄

GetRootDirecoty 方法返回指定目錄的根目錄,下面是獲取根目錄的代碼段:
string path = @"C:\Temp";string root = Path.GetDirectoryName(path);Console.WriteLine(root);

14、所有驅動器

GetLogicalDrives 方法返回系統(tǒng)上的所有邏輯驅動器,下面是獲取所有驅動器的代碼段:
string[] drives = System.IO.Directory.GetLogicalDrives();foreach (string drive in drives){    Console.WriteLine(drive);}

小結

以上是關于 Directory 類實現(xiàn)目錄操作的內容,希望本文對您有所收獲,如有不到之處,請多多包涵。


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

主站蜘蛛池模板: 亚洲中文一本无码av在线无码 | 91精品国偷自产在线电影 | 自偷自拍三级全三级视频 | 亚洲制服丝袜中文字幕自拍 | 激情一区二区三区成人 | 国产成人无码精品一区在线观看 | 亚洲综合精品欧美性一级交视频 | 永久免费观看午夜成人网站 | 精品日韩卡1二2卡3卡4卡乱码 | 一区二区无码精油按摩 | 宅男噜噜噜一区二区 | 最新日韩精品 | 无码中文字幕人妻在线一区二区三区 | 欧美亚洲日韩在线在线影院 | 免费无码一区二区三区A片视频 | 国产aV蝌蚪 | 色偷偷五月天 | 国产日韩av免费无码一区二区三 | 国产精品女主播自在线拍 | 国产成人欧美一区二区三区在线 | 亚洲国产综合精品第一 | 午夜福利网站不卡在线看 | 99久久精品费精品国产一区二 | 亚洲av无码乱码在线观看麻豆 | 内射高潮享受视频在线观看 | 亚洲视頻4438| 午夜性猛交久久久 | 国产精品久久久久久人妻精品动漫 | 一区二区三区无码视频免费福利 | 亚洲国产aⅴ成人精品无吗 亚洲国产a∨乱码无码中文电影 | 丰满人妻被公侵犯完整版 | 老熟妇高潮一区二区三区 | 日本一本免费线观看视频 | 亚洲精品无码专区久久 | 7799视频精品全部免 | 国产精品久久久久乳精品爆 | 日本爽快片18禁免费看 | 久久国产精品人妻无码 | 国产成人拍精品视频午夜网 | 欧美人与禽交视频在线观看 | 亚洲欧美自拍制服另类图片 |