平時很常需要操作檔案、資料夾,但是有時候會搞混到底要使用 Path, File, Directory 等,於是將常使用到的紀錄下來
參考資料:
Microsoft.Learn - Path Class
Microsoft.Learn - File Class
Microsoft.Learn - Directory Class
取得檔案資訊
string path = @"C:\Users\ruyut\Desktop\test.txt";
// 取得相對路徑
string relativePath = Path.GetRelativePath(@"C:\Users\ruyut", path);
Console.WriteLine(relativePath); // Desktop\test.txt
// 確認檔案是否存在
bool fileExists = File.Exists(path);
Console.WriteLine(fileExists);
// 取得檔案絕對路徑
string filePath = Path.GetFullPath(path);
Console.WriteLine(filePath); // C:\Users\ruyut\Desktop\test.txt
// 取得檔案名稱
string fileName = Path.GetFileName(path);
Console.WriteLine(fileName); // test.txt
// 取得檔案副檔名
string fileExtension = Path.GetExtension(path);
Console.WriteLine(fileExtension); // .txt
// 取得檔案不含副檔名的檔名
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(path);
Console.WriteLine(fileNameWithoutExtension); // test
// 檔案建立日期
DateTime creationTime = File.GetCreationTime(path);
Console.WriteLine(creationTime); // 2022/10/27 上午 10:00:00
// 檔案最後存取日期
DateTime lastAccessTime = File.GetLastAccessTime(path);
Console.WriteLine(lastAccessTime); // 2022/10/27 上午 10:00:00
// 檔案最後修改日期
DateTime lastWriteTime = File.GetLastWriteTime(path);
Console.WriteLine(lastWriteTime); // 2022/10/27 上午 10:00:00
檔案編輯
// 建立空檔案
if (!File.Exists(path)) File.Create(path);
// 最簡單的寫入檔案 (不適合大量內容)
File.WriteAllText(path, "Hello, World!");
// 最簡單以附加的方式寫入檔案
File.AppendAllText(path, "Hello, World!");
// 最簡單的讀取檔案 (不適合大量內容)
string content = File.ReadAllText(path);
資料夾
// 取得檔案所在的資料夾路徑
string? fileDirectory = Path.GetDirectoryName(path);
Console.WriteLine(fileDirectory); // C:\Users\ruyut\Desktop
// 確認資料夾是否存在
bool directoryExists = Directory.Exists(fileDirectory);
// 建立資料夾
Directory.CreateDirectory(fileDirectory);
// 取得資料夾下所有檔案
string[] files = Directory.GetFiles(fileDirectory);
// 取得資料夾下所有子資料夾
string[] directories = Directory.GetDirectories(fileDirectory);
參考資料:
Microsoft.Learn - Path Class
Microsoft.Learn - File Class
Microsoft.Learn - Directory Class
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com