網站首頁 編程語言 正文
目錄和文件管理
在.NET框架中,與操作系統環境相關的類主要有兩個:
- 一個是Environment類,該類除了提供當前環境和操作系統平臺相關的信息外,還提供了獲取本地邏輯驅動器和特殊文件夾的方法。
- 另一個是DriveInfo類,提供了本地驅動器相關的詳細信息。
Environment類
使用 Environment 類可檢索與操作系統相關的信息,如命令行參數、退出代碼、環境變量設置、調用堆棧的內容、自上次系統啟動以來的時間,以及公共語言運行庫的版本等。
例子
StringBuilder sb = new StringBuilder();
String[] drives = Environment.GetLogicalDrives();
sb.AppendLine("本機邏輯驅動器:" + String.Join(", ", drives));
sb.AppendLine("操作系統版本:" + Environment.OSVersion.VersionString);
sb.AppendLine("是否為64位系統:" + Environment.Is64BitOperatingSystem);
sb.AppendLine("計算機名:" + Environment.MachineName);
sb.AppendLine("處理器個數:" + Environment.ProcessorCount);
sb.AppendLine("系統啟動后經過的毫秒數:" + Environment.TickCount);
sb.AppendLine("登錄用戶名:" + Environment.UserName);
Console.WriteLine(sb.ToString());
DriveInfo類
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
Console.WriteLine("Drive {0}", d.Name);
Console.WriteLine("文件類型: {0}", d.DriveType);
if (d.IsReady == true)
{
Console.WriteLine("卷標: {0}", d.VolumeLabel);
Console.WriteLine("文件系統: {0}", d.DriveFormat);
Console.WriteLine("當前用戶可用空間:{0} bytes", d.AvailableFreeSpace);
Console.WriteLine("總可用空間:{0} bytes", d.TotalFreeSpace);
Console.WriteLine("驅動器總容量:{0} bytes ", d.TotalSize);
}
}
Path類
Path類用于對包含文件或目錄路徑信息的String實例執行操作。Path類的大多數成員不與文件系統交互,并且不會驗證路徑字符串指定的文件是否存在,但Path成員可驗證表示路徑的字符串是否有效,如果表示路徑的字符串中包含無效字符,則該類將則引發ArgumentException異常。
目錄管理
Directory類提供了一些靜態方法,利用它們可對磁盤和目錄進行管理,如復制、移動、重命名、創建、刪除目錄等。
- CreateDirectory
- public static DirectoryInfo CreateDirectory (string path)
- 如果指定的目錄不存在,程序中調用該方法后,系統會按path指定的路徑創建所有目錄和子目錄。
- Delete方法用于刪除指定的目錄
- public static void Delete(string path, bool recursive)
- 其中,參數path為要移除的目錄的名稱。path參數不區分大小寫,可以是相對于當前工作目錄的相對路徑,也可以是絕對路徑。recursive是一個布爾值,如果要移除path中的目錄(包括所有子目錄和文件),則為true;否則為false。
- Move
- public static void Move (string sourceDirName, string destDirName)
- sourceDirName為要移動的文件或目錄的路徑;destDirName為新位置的目標路徑。
- destDirName參數指定的目標路徑應為新目錄,例如,將“c:\mydir”移動到“c:\public”,如果“c:\public”已存在,則此方法會引發IOException異常。
文件管理
在System.IO命名空間下,.NET框架提供有一個File類,利用它可對文件進行各種操作,如判斷文件是否存在、創建、復制、移動、刪除、讀寫文件。
1、判斷文件是否存在
調用File類的Exists方法可以判斷是否存在指定的文件。例如:
string path1 = @"c:\temp\MyTest1.txt";
if (File.Exists(path1))
{
Console.WriteLine("存在 {0}文件", path1);
}
else
{
Console.WriteLine("不存在 {0}文件", path1);
}
2、復制文件
- File類的Copy方法用于將現有文件復制到新文件。常用原型為
- public static void Copy (string sourceFileName, string destFileName, bool overwrite)
- 其中,參數sourceFileName為被復制的文件;destFileName為目標文件的名稱;overwrite表示是否可以覆蓋目標文件,如果可以覆蓋目標文件,則為true,否則為false。
- 例如:
string path1 = @"c:\temp\MyTest1.txt";
if (!File.Exists(path1))
{
File.WriteAllText(path1, "OK");
}
string path2 = @"c:\temp\MyTest2.txt";
File.Copy(path1, path2, true);
- 在這段代碼中,如果目標文件已存在,就直接覆蓋。實際應用時,一般會先詢問用戶是否覆蓋目標文件,然后再根據用戶的選擇決定是否覆蓋目標文件。
3、刪除文件
- File類的Delete方法用于刪除指定的文件。如果指定的文件不存在,則不進行任何操作,也不會產生異常。
- 方法原型為:public static void Delete (string path)
- 其中,參數path為要刪除的帶完整路徑的文件名稱。
4、移動文件
- File類的Move方法用于將指定文件移到新位置,并提供指定新文件名的選項。
- 方法原型為public static void Move (string sourceFileName, string destFileName)
- 其中,參數sourceFileName為要移動的文件名稱,destFileName為文件的新路徑。
5、判斷某個路徑是目錄還是文件
- 下面的代碼演示了如何判斷某個路徑是目錄還是文件:
if ((File.GetAttributes(path) & FileAttributes.Directory) == FileAttributes.Directory)
{
Console.WriteLine("{0}是目錄", path);
}
else
{
Console.WriteLine("{0}是文件", path);
}
總結
原文鏈接:https://blog.csdn.net/yang2330648064/article/details/127606500
相關推薦
- 2021-12-09 golang中gin框架接入jwt使用token驗證身份_Golang
- 2022-08-01 混淆矩陣Confusion?Matrix概念分析翻譯_其它綜合
- 2022-09-23 C/C++中的靜態變量注意事項_C 語言
- 2022-08-19 python?return實現匯率轉換器教程示例_python
- 2022-10-14 TimeDateUtils日期時間工具類
- 2022-07-26 Python使用shutil操作文件、subprocess運行子程序_python
- 2022-04-11 C#實現簡單的計算器小程序_C#教程
- 2024-01-16 URLClassLoader詳解
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支