● Làm sao lấy được danh sách tập tin và thư mục con của một thư mục nào đó?. ● Làm sao truy xuất được các thuộc tính của một tập tin, thư mục?. Quản lý tập tin● Danh sách tập tin, thư mụ
Trang 1Lập trình trên môi trường Windows
System.IO
Trần Duy Hoàng
Trang 2Nội dung
Trang 3Quản lý tập tin
● Làm sao biết được trên hệ thống có những ổ đĩa nào ?
● Làm sao lấy được danh sách tập tin và thư mục con của một thư mục nào đó ?
● Làm sao truy xuất được các thuộc tính của một tập tin, thư mục ?
● Làm sao giám sát được sự thay đổi của một tập tin, thư mục ?
Trang 5Quản lý tập tin
● Thuộc tính
Trang 6Quản lý tập tin
● DriveType enum
Trang 7Quản lý tập tin
● Danh sách các ổ đĩa trên hệ thống ?
foreach (DriveInfo drive in drives)
{
Console.WriteLine("Drive: {0}", drive.Name); Console.WriteLine("Type: {0}",
drive.DriveType);
Trang 8Quản lý tập tin
● DriveType enum
● Phương thức
Trang 9Quản lý tập tin
● Thuộc tính
Trang 10Quản lý tập tin
● Phương thức
Trang 11foreach (DirectoryInfo subDir in dirs)
{
Console.WriteLine("Dir : {0}", subDir.Name);
Trang 12Quản lý tập tin
● Thuộc tính
Trang 13Quản lý tập tin
● Phương thức
Trang 15Quản lý tập tin
● Thuộc tính
Trang 16Quản lý tập tin
● Phương thức
Trang 17Quản lý tập tin
● Danh sách tập tin, thư mục ?
DirectoryInfo dir = new DirectoryInfo(@"c:\windows");
Console.WriteLine("Directory: {0}", dir.FullName);
{
if (sysFile.Attributes == FileAttributes.Directory)
Console.WriteLine("Dir : {0}", sysFile.Name);
else
Trang 18Quản lý tập tin
● Thuộc tính
Trang 19Quản lý tập tin
● Phương thức
Trang 20Quản lý tập tin
● Thuộc tính
Trang 21Quản lý tập tin
● Phương thức
● Sự kiện
Trang 22Quản lý tập tin
● Giám sát sự thay đổi tập tin, thư mục
FileSystemWatcher watcher = new FileSystemWatcher();
Trang 23Quản lý tập tin
● Cung cấp tất cả các phương thức cần thiết cho việc tạo file, xóa file, di chuyển file, sao chép file…
Trang 25Quản lý tập tin
● Cung cấp tất cả các phương thức cần thiết cho việc tạo thư mục, xóa thư mục, di chuyển thư mục, lấy danh sách tập tin, thư mục con…
Trang 28Đọc ghi tập tin
● Phương thức
Trang 29Đọc ghi tập tin
● Đọc tập tin văn bản
FileStream theFile = File.Open(@"C:\boot.ini",
FileMode.Open, FileAccess.Read);
string line = rdr.ReadLine();
Console.WriteLine(line);
}
Trang 30Đọc ghi tập tin
● Kế thừa TextWriter class
● Dùng để ghi các file văn bản
● Thuộc tính
Trang 31Đọc ghi tập tin
● Phương thức
Trang 32Đọc ghi tập tin
● Ghi file văn bản ?
FileStream theFile = File.Open(@"c:\somefile.txt",
writer.WriteLine("Hello");
writer.Close();
theFile.Close();
Trang 35Đọc ghi tập tin
● Dùng để ghi file nhị phân
● Cung cấp các phương thức Write với nhiều dạng tham số khác nhau để ghi nội dung file
Trang 36Đọc ghi tập tin
● Ghi file nhị phân
FileStream theFile = File.Open(@"c:\somefile.bin",
BinaryWriter writer = new BinaryWriter(theFile);
string s = “Toi di hoc";
writer.Write(number);
Trang 37Nép tập tin
● GZipStream class
● DeflateStream class
Trang 38Nép tập tin
● Kế thừa Stream class
● Dùng để nén/giải nén tập tin theo GZIP
Trang 39Nép tập tin
● Nén tập tin
CompressionMode.Compress);
byte[] Arr = new byte[4096];
while (theByte != 0) {
Trang 40Nép tập tin
● Giải nén tập tin
CompressionMode.Decompress);
byte[] Arr = new byte[4096];
while (theByte != 0) {
Trang 41Nép tập tin
● Kết hợp giữa LZ77 và Huffman
● Dùng tương tự như GZipStream class
● Cho kích thước nén nhỏ hơn
● File nén không thể mở được bằng các chương trình giải nén khác
Trang 42Thảo luận