C#路徑,文件,目錄及IO常見操作匯總
本文實(shí)例匯總了C#路徑,文件,目錄及IO常見操作。分享給大家供大家參考。具體如下:
問題1:如何判定一個(gè)給定的路徑是否有效/合法;
通過Path.GetInvalidPathChars或Path.GetInvalidFileNameChars方法獲得非法的路徑/文件名字符,可以
根據(jù)它來判斷路徑中是否包含非法字符;
問題2:如何確定一個(gè)路徑字符串是表示目錄還是文件;
1、使用Directory.Exists或File.Exist方法,如果前者為真,則路徑表示目錄;如果后者為真,則路徑表示文件;
2、上面的方法有個(gè)缺點(diǎn)就是不能處理那些不存在的文件或目錄。這時(shí)可以考慮使用Path.GetFileName方法獲得
其包含的文件名,如果一個(gè)路徑不為空,而文件名為空那么它表示目錄,否則表示文件;
問題3:如何獲得路徑的某個(gè)特定部分(如文件名、擴(kuò)展名等);
Path.GetDirectoryName :返回指定路徑字符串的目錄信息;
Path.GetExtension : 返回指定的路徑字符串的擴(kuò)展名;
Path.GetFileName : 返回指定路徑字符串的文件名和擴(kuò)展名;
Path.GetFileNameWithoutExtension :返回不具有擴(kuò)展名的路徑字符串的文件名;
Path.GetPathRoot :獲取指定路徑的根目錄信息;
問題4:如何準(zhǔn)確地合并兩個(gè)路徑而不用去擔(dān)心那個(gè)煩人的"\"字符;
使用Path.Combine方法,它會(huì)幫你處理煩人的"\";
問題5:如何獲得系統(tǒng)目錄的的路徑(如桌面,我的文檔,臨時(shí)文件夾等);
主要是使用System. Environment類的相關(guān)屬性和方法:
Environment. SystemDirectory屬性:獲取系統(tǒng)目錄的完全限定路徑;
Environment. GetFolderPath方法:該方法接受的參數(shù)類型為Environment.SpecialFolder枚舉,
通過這個(gè)方法可以獲得大量系統(tǒng)文件夾的路徑,如我的電腦,我的電腦,桌面,系統(tǒng)目錄等;
Path.GetTempPath方法:返回當(dāng)前系統(tǒng)的臨時(shí)文件夾的路徑;
問題6:如何判斷一個(gè)路徑是絕對(duì)路徑還是相對(duì)路徑;
使用Path.IsPathRooted方法;
問題7:如何讀取或設(shè)置當(dāng)前目錄;
使用Directory類的GetCurrentDirectory和SetCurrentDirectory方法;
問題8:判斷兩個(gè)文件的內(nèi)容是否一致
public static bool IsFilesEqual(string fileName1, string fileName2) { using (HashAlgorithm hashAlg = HashAlgorithm.Create()) { using (FileStream fs1 = new FileStream(fileName1, FileMode.Open), fs2 = new FileStream(fileName2, FileMode.Open)) { byte[] hashBytes1 = hashAlg.ComputeHash(fs1); byte[] hashBytes2 = hashAlg.ComputeHash(fs2); // 比較哈希碼 return (BitConverter.ToString(hashBytes1) == BitConverter.ToString(hashBytes2)); } } }
問題9:計(jì)算一個(gè)目錄的大小
private long CalculateDirSize(DirectoryInfo di, bool includeSubDir) { long totalSize = 0; // 檢查所有(直接)包含的文件 FileInfo[] files = di.GetFiles(); foreach (FileInfo file in files) { totalSize += file.Length; } // 檢查所有子目錄,如果includeSubDir參數(shù)為true if (includeSubDir) { DirectoryInfo[] dirs = di.GetDirectories(); foreach (DirectoryInfo dir in dirs) { totalSize += CalculateDirSize(dir, includeSubDir); } } return totalSize; }
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
上一篇:C#禁止textbox復(fù)制、粘貼、剪切及鼠標(biāo)右鍵的方法
欄 目:C#教程
下一篇:C#搜索TreeView子節(jié)點(diǎn),保留父節(jié)點(diǎn)的方法
本文標(biāo)題:C#路徑,文件,目錄及IO常見操作匯總
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6978.html
您可能感興趣的文章
- 01-10C#實(shí)現(xiàn)多線程下載文件的方法
- 01-10C#文件斷點(diǎn)續(xù)傳實(shí)現(xiàn)方法
- 01-10C#實(shí)現(xiàn)多線程寫入同一個(gè)文件的方法
- 01-10C#編程獲取資源文件中圖片的方法
- 01-10C#實(shí)現(xiàn)讀取被進(jìn)程占用的文件實(shí)現(xiàn)方法
- 01-10C#刪除只讀文件或文件夾(解決File.Delete無法刪除文件)
- 01-10C#實(shí)現(xiàn)在啟動(dòng)目錄創(chuàng)建快捷方式的方法
- 01-10C# readnodefile()不能讀取帶有文件名為漢字的osg文件解決方法
- 01-10winform實(shí)現(xiàn)拖動(dòng)文件到窗體上的方法
- 01-10C#讀寫INI文件的方法


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- 01-10WinForm實(shí)現(xiàn)仿視頻 器左下角滾動(dòng)新
- 01-10C#停止線程的方法
- 01-10C#實(shí)現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實(shí)現(xiàn)讀取注冊(cè)表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機(jī)閱讀
- 04-02jquery與jsp,用jquery
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文