程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#路徑,文件,目錄及IO常見操作

C#路徑,文件,目錄及IO常見操作

編輯:關於C#
 

問題1:如何判定一個給定的路徑是否有效/合法;

通過Path.GetInvalidPathChars或Path.GetInvalidFileNameChars方法獲得非法的路徑/文件名字符,可以

根據它來判斷路徑中是否包含非法字符;

問題2:如何確定一個路徑字符串是表示目錄還是文件;

1、使用Directory.Exists或File.Exist方法,如果前者為真,則路徑表示目錄;如果後者為真,則路徑表示文件;

2、上面的方法有個缺點就是不能處理那些不存在的文件或目錄。這時可以考慮使用Path.GetFileName方法獲得

其包含的文件名,如果一個路徑不為空,而文件名為空那麼它表示目錄,否則表示文件;

問題3:如何獲得路徑的某個特定部分(如文件名、擴展名等);

Path.GetDirectoryName :返回指定路徑字符串的目錄信息;
Path.GetExtension : 返回指定的路徑字符串的擴展名;
Path.GetFileName : 返回指定路徑字符串的文件名和擴展名;
Path.GetFileNameWithoutExtension :返回不具有擴展名的路徑字符串的文件名;
Path.GetPathRoot :獲取指定路徑的根目錄信息;

問題4:如何准確地合並兩個路徑而不用去擔心那個煩人的"\"字符;

使用Path.Combine方法,它會幫你處理煩人的"\";

問題5:如何獲得系統目錄的的路徑(如桌面,我的文檔,臨時文件夾等);

主要是使用System. Environment類的相關屬性和方法:
Environment. SystemDirectory屬性:獲取系統目錄的完全限定路徑;
Environment. GetFolderPath方法:該方法接受的參數類型為Environment.SpecialFolder枚舉,
通過這個方法可以獲得大量系統文件夾的路徑,如我的電腦,我的電腦,桌面,系統目錄等;
Path.GetTempPath方法:返回當前系統的臨時文件夾的路徑;

問題6:如何判斷一個路徑是絕對路徑還是相對路徑;

使用Path.IsPathRooted方法;

問題7:如何讀取或設置當前目錄;

使用Directory類的GetCurrentDirectory和SetCurrentDirectory方法;

問題8:判斷兩個文件的內容是否一致


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:計算一個目錄的大小

private long CalculateDirSize(DirectoryInfo di, bool includeSubDir)
{
long totalSize = 0;
// 檢查所有(直接)包含的文件
FileInfo[] files = di.GetFiles();
foreach (FileInfo file in files)
{
totalSize += file.Length;
}
// 檢查所有子目錄,如果includeSubDir參數為true
if (includeSubDir)
{
DirectoryInfo[] dirs = di.GetDirectories();
foreach (DirectoryInfo dir in dirs)
{
totalSize += CalculateDirSize(dir, includeSubDir);
}
}
return totalSize;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved