Trong bài viết này, chúng ta sẽ cùng tìm hiểu về 2 class Path và DriveInfo trong C#.
#1/2. Làm việc với đường dẫn Path
– Class Path cung cấp toàn bộ là phương thức và thuộc tính static để thao tác với đường dẫn trong C#.
– Các phương thức của class Path:
Method / Property | Mô tả |
ChangeExtension() | Thay đổi the extension của một path string. |
Combine() | Kết hợp một chuỗi các chuỗi thành một đường dẫn. |
GetDirectoryName() | Trả về thông tin thư mục cho chuỗi đường dẫn đã chỉ định. |
GetExtension() | Trả về phần mở rộng của chuỗi đường dẫn đã chỉ định. |
GetFileName() | Trả về tên file có phần mở rộng của chuỗi đường dẫn đã chỉ định. |
GetFileNameWithoutExtension() | Trả về tên file không có phần mở rộng của chuỗi đường dẫn đã chỉ định. |
GetFullPath() | Trả về đường dẫn tuyệt đối cho chuỗi đường dẫn đã chỉ định. |
GetInvalidFileNameChars() | Trả về một mảng chứa các ký tự không được phép trong tên file. |
GetInvalidPathChars() | Trả về một mảng chứa các ký tự không được phép trong path. |
GetPathRoot() | Lấy thông tin thư mục gốc (root directory) của đường dẫn đã chỉ định. |
GetRandomFileName() | Trả về ngẫu nhiên tên folder hoặc tên file. |
GetTempFileName() | Tạo một file tạm thời có uniquely named (được đặt tên duy nhất trên ổ đĩa) và trả về đường dẫn đầy đủ của file tạm thời đó. |
GetTempPath() | Trả về đường dẫn của thư mục tạm thời “Temp” của người dùng hiện tại. |
HasExtension() | Xác định xem một path có bao gồm phần mở rộng của file hay không. |
IsPathRooted() | Nhận một giá trị cho biết chuỗi đường dẫn đã chỉ định có chứa root hay không. |
– Các thuộc tính của class Path:
- AltDirectorySeparatorChar
- DirectorySeparatorChar
- InvalidPathChars
- PathSeparator
- VolumeSeparatorChar
– Demo:
using System; using System.IO; namespace MinhHoangBlog { class Program { static void Main(string[] args) { string goodFileName = @"D:\MinhHoangBlog\minhhn.com\myFile.txt"; string badFileName = @"D:\MinhHoangBlog\minhhn.com\"; string result; result = Path.ChangeExtension(goodFileName, ".old"); // output "D:\MinhHoangBlog\minhhn.com\myFile.old" result = Path.ChangeExtension(goodFileName, ""); // output "D:\MinhHoangBlog\minhhn.com\myFile." result = Path.ChangeExtension(badFileName, ".old"); // output "D:\MinhHoangBlog\minhhn.com\.old" result = Path.GetDirectoryName(goodFileName); // output "D:\\MinhHoangBlog\\minhhn.com" result = Path.GetExtension(goodFileName); // output ".txt" result = Path.GetFileName(goodFileName); // output "myFile.txt" result = Path.GetFileNameWithoutExtension(goodFileName); // output "myFile" result = Path.GetFullPath(goodFileName); // output "D:\\MinhHoangBlog\\minhhn.com\\myFile.txt" result = Path.GetPathRoot(goodFileName); // output "D:\\" result = Path.GetTempFileName(); // output "C:\\Users\\pc\\AppData\\Local\\Temp\\tmpE185.tmp" result = Path.GetTempPath(); // output "C:\\Users\\pc\\AppData\\Local\\Temp\\" string fileName = @"C:\mydir\myfile.ext"; string uncPath = @"\\myPc\mydir\myfile"; string relativePath = @"mydir\sudir\"; bool isFlg; isFlg = Path.HasExtension(fileName); // output "true" isFlg = Path.HasExtension(uncPath); // output "false" isFlg = Path.IsPathRooted(fileName); // output "true" isFlg = Path.IsPathRooted(uncPath); // output "true" isFlg = Path.IsPathRooted(relativePath); // output "false" // Get current working directory (..\bin\Debug) string workingDirectory = Environment.CurrentDirectory; // Get the current PROJECT directory string projectDirectory = Directory.GetParent(workingDirectory).Parent.FullName; // Create specific path file string csvPath = string.Format(@"{0}\CsvFile\Sample.csv", projectDirectory); // Remove the last character if it's DirectorySeparatorChar result = badFileName.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); // badFileName "D:\\MinhHoangBlog\\minhhn.com\\" // output "D:\\MinhHoangBlog\\minhhn.com" Console.ReadKey(); } } }
– Ngoài ra còn có các cách lấy application folder path:
- Application.StartupPath
- System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)
- AppDomain.CurrentDomain.BaseDirectory (★)
- System.IO.Directory.GetCurrentDirectory()
- Environment.CurrentDirectory
- System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)
- System.IO.Path.GetDirectory(Application.ExecutablePath)
- HttpContext.Current.Server.MapPath();
- System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;
#2/2. Làm việc với DriveInfo
– Class DriveInfo cung cấp các phương thức và thuộc tính truy cập thông tin của ổ cứng và CD-Rom.
– Các phương thức và thuộc tính của class DriveInfo:
Method / Property | Mô tả |
GetDrives() | Trả về là một mảng DriveInfo[], là tên ổ đĩa của tất cả các ổ đĩa logic trên máy tính. |
AvailableFreeSpace | Cho biết lượng không gian trống có sẵn trên một ổ đĩa, tính bằng byte. |
DriveFormat | Lấy tên của hệ thống file, chẳng hạn như NTFS hoặc FAT32. |
DriveType | Lấy loại ổ đĩa như là CD-ROM, loại có thể tháo rời, network hay cố định. |
IsReady | Trả về true nếu ổ đĩa đã sẵn sàng, false nếu ổ đĩa chưa sẵn sàng. |
Name | Lấy tên của ổ đĩa, chẳng hạn như: C:\ |
RootDirectory | Lấy thư mục gốc (root directory) của một ổ đĩa. |
TotalFreeSpace | Lấy tổng số dung lượng trống có sẵn trên một ổ đĩa, tính bằng byte. |
TotalSize | Lấy tổng kích thước của không gian lưu trữ trên một ổ đĩa, tính bằng byte. |
VolumeLabel | Get / Set FileAttribution nhãn cho ổ đĩa, như C, D, E,… |
Có thể bạn quan tâm: Thao tác với tập tin và thư mục trong C#.
[…] Có thể bạn quan tâm: Thao tác với đường dẫn Path và DriveInfo trong C#. […]