Path類與Directory類與File類對路徑/目錄/文件的操作實例
更新時間:2013年02月28日 11:46:38 作者:
本文將詳細(xì)介紹下:Path對路徑字符串進(jìn)行操作/Directory和DirectoryInfo 對目錄進(jìn)行操作/File和FileInfo對文件進(jìn)行操作,感興趣的你可不要錯過了哈
Path 對路徑 字符串進(jìn)行操作
獲得后綴
能合并路徑
獲取文件名
Directory和DirectoryInfo 對目錄進(jìn)行操作
判斷目錄是否存在
創(chuàng)建目錄
刪除目錄
獲取目錄下所有的子目錄
獲取目錄下所有的子文件
File和FileInfo 對文件進(jìn)行操作
讀文件
寫文件
追加文件
判斷文件是否存在
創(chuàng)建文件
刪除文件
1、Path類
using System;
using System.IO;//目錄和文件操作的名稱空間
namespace _11_Path類 {
class Program {
static void Main(string[] args) {
string path = "c:\\abc\\1.txt" ;
//注意這里是對路徑字符串的操作 而不是真正的文件 “修改”支持字符串層面的,沒有真的給文件改名
path = Path.ChangeExtension(path, "avi" );//ChangeExtension()修改文件后綴名1.avi c:\\abc\\1.avi
//將兩個路徑合成一個路徑,比用+好,可以方便解決是不是加斜線的問題,自動處理路徑分隔符的問題
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類.exe" );//文件全路徑(相對文件的全路徑 一般也不用此方法) F:\PIZIYIMAO\11-Path類\bin\Debug\11-Path類.exe
path = Path.GetTempFileName();//臨時文件夾保存路徑 自動創(chuàng)建文件 C:\Documents and Settings\PIZIYIMAO\Local Settings\Temp\tmp5E.tmp
path = Path.GetTempPath();//獲取臨時文件夾保存路徑 C:\Documents and Settings\PIZIYIMAO\Local Settings\Temp\
Console.WriteLine(path);
Console.Read();
}
}
}
2、操作目錄類 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ū)別在于它是實例類 而后者是靜態(tài)類
Directory .CreateDirectory("c:\\abc" ); //創(chuàng)建文件夾
Directory .CreateDirectory("c:\\abc\\1\\2\\3\\4\\5\\6\\7" ); //連續(xù)創(chuàng)建多級文件夾
if (Directory .Exists( "c:\\abc")) //判斷是否存在文件夾
{
Directory .Delete("c:\\abc" ); //如果存在則刪除 如果文件夾為空能正常刪除 不為空則會報錯 "目錄不是空的"
Directory .Delete("c:\\abc" , true); //true則指定 如果文件夾不為空 同樣執(zhí)行刪除操作
}
string [] paths = Directory .GetDirectories( "c:\\abc"); //獲取目錄中所有子目錄名稱 注意只取下一級別 即c:\abc\1 如獲取windows文件夾下所有文件夾路徑可以使用此方法
string [] paths2 = Directory .GetDirectories( "c:\\windows", "$*" );//以上方法重載實現(xiàn) 檢索以$開頭的文件
string [] paths3 = Directory .GetDirectories( "c:\\abc", "*" , SearchOption .AllDirectories);//通配符查找文件夾中符合條件的文件 包括子級文件夾
foreach (string path in paths) {
Console .WriteLine(path);
}
string [] files = Directory .GetFiles( "c:\\windows"); //遍歷文件夾下的所有文件
string [] files2 = Directory .GetFiles( "c:\\windows", "*.ini" , SearchOption .AllDirectories);//通配符查找目錄下的文件 用法類似于GetDirectories
foreach (string file in files2) {
Console .WriteLine(file);
}
//目錄操作最重要的就是 GetFiles和GetDirectories方法
Directory .GetParent("c:\\abc\\1\\2\\3\\4\\5\\6\\7" ); //返回7文件夾的父級目錄 c:\abc\1\2\3\4\5\6
Console .Read();
}
}
}
3、文件類File
using System;
using System.IO;
using System.Text;
namespace _13_File {
class Program {
static void Main( string[] args) {
//file靜態(tài)類 使用file類時需要注意文件默認(rèn)編碼的使用 如果編碼不正確 文件中會顯示亂碼
File .AppendAllText("c:\\1.txt" , "gb1232"); //向c:\\1.txt文件中追加 內(nèi)容“gb2312”
//如果存在寫入文件
if (File .Exists( "c:\\1.txt")) {
File .WriteAllText("c:\\1.txt" , "寫入中文有時會出現(xiàn)亂碼 需要使用第三個參數(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中,會覆蓋舊內(nèi)容。
FileInfo fi = new FileInfo( "c:\\2.txt" );//實例化的類 功能比file要強(qiáng)大
fi.AppendText(); //它有很多的方法 和屬性 自己查看 文檔
Console .Read();
}
}
}
獲得后綴
能合并路徑
獲取文件名
Directory和DirectoryInfo 對目錄進(jìn)行操作
判斷目錄是否存在
創(chuàng)建目錄
刪除目錄
獲取目錄下所有的子目錄
獲取目錄下所有的子文件
File和FileInfo 對文件進(jìn)行操作
讀文件
寫文件
追加文件
判斷文件是否存在
創(chuàng)建文件
刪除文件
1、Path類
復(fù)制代碼 代碼如下:
using System;
using System.IO;//目錄和文件操作的名稱空間
namespace _11_Path類 {
class Program {
static void Main(string[] args) {
string path = "c:\\abc\\1.txt" ;
//注意這里是對路徑字符串的操作 而不是真正的文件 “修改”支持字符串層面的,沒有真的給文件改名
path = Path.ChangeExtension(path, "avi" );//ChangeExtension()修改文件后綴名1.avi c:\\abc\\1.avi
//將兩個路徑合成一個路徑,比用+好,可以方便解決是不是加斜線的問題,自動處理路徑分隔符的問題
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類.exe" );//文件全路徑(相對文件的全路徑 一般也不用此方法) F:\PIZIYIMAO\11-Path類\bin\Debug\11-Path類.exe
path = Path.GetTempFileName();//臨時文件夾保存路徑 自動創(chuàng)建文件 C:\Documents and Settings\PIZIYIMAO\Local Settings\Temp\tmp5E.tmp
path = Path.GetTempPath();//獲取臨時文件夾保存路徑 C:\Documents and Settings\PIZIYIMAO\Local Settings\Temp\
Console.WriteLine(path);
Console.Read();
}
}
}
2、操作目錄類 Directory與DirectoryInfo
復(fù)制代碼 代碼如下:
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ū)別在于它是實例類 而后者是靜態(tài)類
Directory .CreateDirectory("c:\\abc" ); //創(chuàng)建文件夾
Directory .CreateDirectory("c:\\abc\\1\\2\\3\\4\\5\\6\\7" ); //連續(xù)創(chuàng)建多級文件夾
if (Directory .Exists( "c:\\abc")) //判斷是否存在文件夾
{
Directory .Delete("c:\\abc" ); //如果存在則刪除 如果文件夾為空能正常刪除 不為空則會報錯 "目錄不是空的"
Directory .Delete("c:\\abc" , true); //true則指定 如果文件夾不為空 同樣執(zhí)行刪除操作
}
string [] paths = Directory .GetDirectories( "c:\\abc"); //獲取目錄中所有子目錄名稱 注意只取下一級別 即c:\abc\1 如獲取windows文件夾下所有文件夾路徑可以使用此方法
string [] paths2 = Directory .GetDirectories( "c:\\windows", "$*" );//以上方法重載實現(xiàn) 檢索以$開頭的文件
string [] paths3 = Directory .GetDirectories( "c:\\abc", "*" , SearchOption .AllDirectories);//通配符查找文件夾中符合條件的文件 包括子級文件夾
foreach (string path in paths) {
Console .WriteLine(path);
}
string [] files = Directory .GetFiles( "c:\\windows"); //遍歷文件夾下的所有文件
string [] files2 = Directory .GetFiles( "c:\\windows", "*.ini" , SearchOption .AllDirectories);//通配符查找目錄下的文件 用法類似于GetDirectories
foreach (string file in files2) {
Console .WriteLine(file);
}
//目錄操作最重要的就是 GetFiles和GetDirectories方法
Directory .GetParent("c:\\abc\\1\\2\\3\\4\\5\\6\\7" ); //返回7文件夾的父級目錄 c:\abc\1\2\3\4\5\6
Console .Read();
}
}
}
3、文件類File
復(fù)制代碼 代碼如下:
using System;
using System.IO;
using System.Text;
namespace _13_File {
class Program {
static void Main( string[] args) {
//file靜態(tài)類 使用file類時需要注意文件默認(rèn)編碼的使用 如果編碼不正確 文件中會顯示亂碼
File .AppendAllText("c:\\1.txt" , "gb1232"); //向c:\\1.txt文件中追加 內(nèi)容“gb2312”
//如果存在寫入文件
if (File .Exists( "c:\\1.txt")) {
File .WriteAllText("c:\\1.txt" , "寫入中文有時會出現(xiàn)亂碼 需要使用第三個參數(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中,會覆蓋舊內(nèi)容。
FileInfo fi = new FileInfo( "c:\\2.txt" );//實例化的類 功能比file要強(qiáng)大
fi.AppendText(); //它有很多的方法 和屬性 自己查看 文檔
Console .Read();
}
}
}
相關(guān)文章
ASP.NET Core應(yīng)用中與第三方IoC/DI框架的整合
ASP.NET Core應(yīng)用中,針對第三方DI框架的整合可以通過在定義Startup類型的ConfigureServices方法返回一個ServiceProvider來實現(xiàn)。但是并不是那么容易的,下面通過實例給大家分享一下2017-04-04
asp.net Repeater控件的說明及詳細(xì)介紹及使用方法
Repeater控件是Web 服務(wù)器控件中的一個容器控件,它使您可以從頁的任何可用數(shù)據(jù)中創(chuàng)建出自定義列表。2010-04-04
asp.net使用JS+form表單Post和Get方式提交數(shù)據(jù)
今天小編就為大家分享一篇關(guān)于asp.net使用JS+form表單Post和Get方式提交數(shù)據(jù),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-01-01
關(guān)于ASP.NET中TreeView用法的一個小例子
下面是一個Treeview動態(tài)的綁定3層深度的樹的代碼,有需要的朋友可以參考一下2013-12-12
Web.config(應(yīng)用程序的配置信息)總結(jié)
Web.config文件是一個XML文本文件,它用來儲存 ASP.NET Web 應(yīng)用程序的配置信息(如最常用的設(shè)置ASP.NET Web 應(yīng)用程序的身份驗證方式),它可以出現(xiàn)在應(yīng)用程序的每一個目錄中,接下來詳細(xì)介紹一下配置情況,感興趣的朋友可以了解下2013-01-01
巧用ASP.NET預(yù)編譯Web應(yīng)用程序規(guī)避調(diào)用延遲的方法
ASP.NET 1.x的開發(fā)人員常常聽到用戶抱怨首次調(diào)用應(yīng)用程序的時候會碰到初始化延遲。畢竟,初次請求會引發(fā)一個系列過程,包括運行庫初始化、分析、把ASPX頁面編譯成中間語言、把方法即時編譯成本地代碼等等。2011-08-08

