Path類(lèi)與Directory類(lèi)與File類(lèi)對(duì)路徑/目錄/文件的操作實(shí)例
獲得后綴
能合并路徑
獲取文件名
Directory和DirectoryInfo 對(duì)目錄進(jìn)行操作
判斷目錄是否存在
創(chuàng)建目錄
刪除目錄
獲取目錄下所有的子目錄
獲取目錄下所有的子文件
File和FileInfo 對(duì)文件進(jìn)行操作
讀文件
寫(xiě)文件
追加文件
判斷文件是否存在
創(chuàng)建文件
刪除文件
1、Path類(lèi)
using System;
using System.IO;//目錄和文件操作的名稱(chēng)空間
namespace _11_Path類(lèi) {
class Program {
static void Main(string[] args) {
string path = "c:\\abc\\1.txt" ;
//注意這里是對(duì)路徑字符串的操作 而不是真正的文件 “修改”支持字符串層面的,沒(méi)有真的給文件改名
path = Path.ChangeExtension(path, "avi" );//ChangeExtension()修改文件后綴名1.avi c:\\abc\\1.avi
//將兩個(gè)路徑合成一個(gè)路徑,比用+好,可以方便解決是不是加斜線的問(wèn)題,自動(dòng)處理路徑分隔符的問(wèn)題
path = Path.Combine("c:\\abc\\def\\" , "1.jpg"); //c:\abc\def\1.jpg
//得到文件所在文件夾的位置 同樣是從字符串的角度去處理
path = Path.GetDirectoryName(path);//c:\abc
path = Path.GetExtension(path);//擴(kuò)展名 .txt
path = Path.GetFileName(path);//文件名.后綴名 1.txt
path = Path.GetFileNameWithoutExtension(path);//不含后綴的文件名 1
path = Path.GetFullPath("11-Path類(lèi).exe" );//文件全路徑(相對(duì)文件的全路徑 一般也不用此方法) F:\PIZIYIMAO\11-Path類(lèi)\bin\Debug\11-Path類(lèi).exe
path = Path.GetTempFileName();//臨時(shí)文件夾保存路徑 自動(dòng)創(chuàng)建文件 C:\Documents and Settings\PIZIYIMAO\Local Settings\Temp\tmp5E.tmp
path = Path.GetTempPath();//獲取臨時(shí)文件夾保存路徑 C:\Documents and Settings\PIZIYIMAO\Local Settings\Temp\
Console.WriteLine(path);
Console.Read();
}
}
}
2、操作目錄類(lèi) Directory與DirectoryInfo
using System;
using System.IO;
namespace _12_Directory {
class Program {
static void Main( string[] args) {
DirectoryInfo dic = new DirectoryInfo( "c:\\abc" );
//dic.Name; //獲取文件名
//dic.FullName; //獲取文件全路徑 功能要比Directory強(qiáng)大 區(qū)別在于它是實(shí)例類(lèi) 而后者是靜態(tài)類(lèi)
Directory .CreateDirectory("c:\\abc" ); //創(chuàng)建文件夾
Directory .CreateDirectory("c:\\abc\\1\\2\\3\\4\\5\\6\\7" ); //連續(xù)創(chuàng)建多級(jí)文件夾
if (Directory .Exists( "c:\\abc")) //判斷是否存在文件夾
{
Directory .Delete("c:\\abc" ); //如果存在則刪除 如果文件夾為空能正常刪除 不為空則會(huì)報(bào)錯(cuò) "目錄不是空的"
Directory .Delete("c:\\abc" , true); //true則指定 如果文件夾不為空 同樣執(zhí)行刪除操作
}
string [] paths = Directory .GetDirectories( "c:\\abc"); //獲取目錄中所有子目錄名稱(chēng) 注意只取下一級(jí)別 即c:\abc\1 如獲取windows文件夾下所有文件夾路徑可以使用此方法
string [] paths2 = Directory .GetDirectories( "c:\\windows", "$*" );//以上方法重載實(shí)現(xiàn) 檢索以$開(kāi)頭的文件
string [] paths3 = Directory .GetDirectories( "c:\\abc", "*" , SearchOption .AllDirectories);//通配符查找文件夾中符合條件的文件 包括子級(jí)文件夾
foreach (string path in paths) {
Console .WriteLine(path);
}
string [] files = Directory .GetFiles( "c:\\windows"); //遍歷文件夾下的所有文件
string [] files2 = Directory .GetFiles( "c:\\windows", "*.ini" , SearchOption .AllDirectories);//通配符查找目錄下的文件 用法類(lèi)似于GetDirectories
foreach (string file in files2) {
Console .WriteLine(file);
}
//目錄操作最重要的就是 GetFiles和GetDirectories方法
Directory .GetParent("c:\\abc\\1\\2\\3\\4\\5\\6\\7" ); //返回7文件夾的父級(jí)目錄 c:\abc\1\2\3\4\5\6
Console .Read();
}
}
}
3、文件類(lèi)File
using System;
using System.IO;
using System.Text;
namespace _13_File {
class Program {
static void Main( string[] args) {
//file靜態(tài)類(lèi) 使用file類(lèi)時(shí)需要注意文件默認(rèn)編碼的使用 如果編碼不正確 文件中會(huì)顯示亂碼
File .AppendAllText("c:\\1.txt" , "gb1232"); //向c:\\1.txt文件中追加 內(nèi)容“gb2312”
//如果存在寫(xiě)入文件
if (File .Exists( "c:\\1.txt")) {
File .WriteAllText("c:\\1.txt" , "寫(xiě)入中文有時(shí)會(huì)出現(xiàn)亂碼 需要使用第三個(gè)參數(shù) 指定Encoding文件的編碼格式 Default為默認(rèn)格式" ,Encoding .Default);//WriteAllText是徹底的覆蓋 而AppendAllText是追加
}
//File.ReadAllText();//讀取文件不再列舉 以下方法查看文檔不再舉例
//string[] ReadAllLines(string path) //讀取文本文件到字符串?dāng)?shù)組中
//string ReadAllText(string path) //讀取文本文件到字符串中
//WriteAllLines(string path,string[] contents),//將字符串?dāng)?shù)組逐行保存到文件path中,會(huì)覆蓋舊內(nèi)容。
FileInfo fi = new FileInfo( "c:\\2.txt" );//實(shí)例化的類(lèi) 功能比f(wàn)ile要強(qiáng)大
fi.AppendText(); //它有很多的方法 和屬性 自己查看 文檔
Console .Read();
}
}
}
相關(guān)文章
The remote procedure call failed and did not execute的解決辦法
打開(kāi)IIS隨便訪問(wèn)一個(gè).asp文件,提示The remote procedure call failed and did not execute2009-11-11asp.net關(guān)于Cookie跨域(域名)的問(wèn)題
Cookie是一個(gè)偉大的發(fā)明,它允許Web開(kāi)發(fā)者保留他們的用戶(hù)的登錄狀態(tài)。但是當(dāng)你的站點(diǎn)有一個(gè)以上的域名時(shí)就會(huì)出現(xiàn)問(wèn)題了。在Cookie規(guī)范上說(shuō),一個(gè)cookie只能用于一個(gè)域名,不能夠發(fā)給其它的域名。因此,如果在瀏覽器中對(duì)一個(gè)域名設(shè)置了一個(gè)cookie,這個(gè)cookie對(duì)于其它的域名將無(wú)效。如果你想讓你的用戶(hù)從你的站點(diǎn)中的其中一個(gè)進(jìn)行登錄,同時(shí)也可以在其它域名上進(jìn)行登錄,這可真是一個(gè)大難題。2012-12-12.NET?Core使用Eureka實(shí)現(xiàn)服務(wù)注冊(cè)
這篇文章介紹了.NET?Core使用Eureka實(shí)現(xiàn)服務(wù)注冊(cè)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07jQuery 插件autocomplete自動(dòng)完成應(yīng)用(自動(dòng)補(bǔ)全)(asp.net后臺(tái))
項(xiàng)目中有時(shí)會(huì)用到自動(dòng)補(bǔ)全查詢(xún),就像Google搜索框、淘寶商品搜索功能,輸入漢字或字母,則以該漢字或字母開(kāi)頭的相關(guān)條目會(huì)顯示出來(lái)供用戶(hù)選擇, autocomplete插件就是完成這樣的功能2011-10-10Xamarin.Forms在安卓機(jī)上進(jìn)行本機(jī)調(diào)試
這篇文章介紹了Xamarin.Forms在安卓機(jī)上進(jìn)行本機(jī)調(diào)試的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02Net?core中使用System.Drawing對(duì)上傳的圖片流進(jìn)行壓縮(示例代碼)
這篇文章主要介紹了Net?core中使用System.Drawing對(duì)上傳的圖片流進(jìn)行壓縮,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08ASP.NET oledb連接Access數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了ASP.NET oledb連接Access數(shù)據(jù)庫(kù)的方法,需要的朋友可以參考下2015-01-01.net數(shù)據(jù)庫(kù)操作框架SqlSugar的簡(jiǎn)單入門(mén)
這篇文章主要介紹了.net數(shù)據(jù)庫(kù)操作框架SqlSugar的簡(jiǎn)單入門(mén),幫助大家更好的理解和學(xué)習(xí)使用.net技術(shù),感興趣的朋友可以了解下2021-04-04