Bài giảng Lập trình môi trường Window: Chương 9 giới thiệu nội dung về xử lí tập tin trong Window bao gồm làm việc với hệ thống file và thư mục, đọc và ghi file, nén thông tin. Mời các bạn đọc tải về để tham khảo bài giảng chi tiết.
Xử lý tập tin CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung Làm việc với hệ thống file thư mục Đọc ghi file Nén thông tin CuuDuongThanCong.com https://fb.com/tailieudientucntt Navigating the File System Nhu cầu: Làm biết hệ thống có ổ đĩa nào? Làm lấy danh sách tập tin thư mục thư mục đó? Làm truy xuất thuộc tính tập tin, thư mục? Làm giám sát thay đổi tập tin, thư mục? … CuuDuongThanCong.com https://fb.com/tailieudientucntt Navigating the File System Các lớp hỗ trợ DriveInfo class DirectoryInfo class FileInfo class Path class FileSystemWatcher class File class Directory class CuuDuongThanCong.com https://fb.com/tailieudientucntt Navigating the File System DriveInfo class Cung cấp thông tin khác drive Thuộc tính CuuDuongThanCong.com https://fb.com/tailieudientucntt Navigating the File System DriveInfo class DriveType enum Phương thức CuuDuongThanCong.com https://fb.com/tailieudientucntt Navigating the File System FileSystemInfo class Là lớp sở lớp FileInfo DirectoryInfo Thuộc tính CuuDuongThanCong.com https://fb.com/tailieudientucntt Navigating the File System FileSystemInfo class Phương thức CuuDuongThanCong.com https://fb.com/tailieudientucntt Navigating the File System DirectoryInfo class Cung cấp thông tin lệnh làm việc vớithư mục Thuộc tính CuuDuongThanCong.com https://fb.com/tailieudientucntt Navigating the File System DirectoryInfo class Phương thức CuuDuongThanCong.com https://fb.com/tailieudientucntt Reading and Writing Files Ví dụ Đọc file văn FileStream theFile = File.Open(@"C:\boot.ini", FileMode.Open, FileAccess.Read); StreamReader rdr = new StreamReader(theFile); while (!rdr.EndOfStream) { string line = rdr.ReadLine(); Console.WriteLine(line); } rdr.Close(); theFile.Close(); CuuDuongThanCong.com https://fb.com/tailieudientucntt Reading and Writing Files StreamWriter class Kế thừa TextWriter class Dùng để ghi file văn theo bảng mã xác định, mặc định UTF-8 Thuộc tính CuuDuongThanCong.com https://fb.com/tailieudientucntt Reading and Writing Files StreamWriter class Phương thức CuuDuongThanCong.com https://fb.com/tailieudientucntt Reading and Writing Files Ví dụ Ghi file văn FileStream theFile = File.Open(@"c:\somefile.txt", FileMode.OpenOrCreate, FileAccess.Write); StreamWriter writer = new StreamWriter(theFile); writer.WriteLine("Hello"); writer.Close(); theFile.Close(); CuuDuongThanCong.com https://fb.com/tailieudientucntt Reading and Writing Files BinaryReader class Dùng để đọc file nhị phân Cung cấp phương thức có dạng ReadXXX(ReadByte, ReadInt32…) để đọc nội dung file CuuDuongThanCong.com https://fb.com/tailieudientucntt Reading and Writing Files Ví dụ Đọc file nhị phân FileStream theFile = File.Open(@"c:\somefile.bin", FileMode.Open); BinaryReader reader = new BinaryReader(theFile); long number = reader.ReadInt64(); byte[] bytes = reader.ReadBytes(4); string s = reader.ReadString(); CuuDuongThanCong.com https://fb.com/tailieudientucntt Reading and Writing Files BinaryWriter class Dùng để ghi file nhị phân Cung cấp phương thức Write với nhiều dạng tham số khác để ghi nội dung file CuuDuongThanCong.com https://fb.com/tailieudientucntt Reading and Writing Files Ví dụ Ghi file nhị phân FileStream theFile = File.Open(@"c:\somefile.bin", FileMode.OpenOrCreate, FileAccess.Write); BinaryWriter writer = new BinaryWriter(theFile); long number = 100; byte[] bytes = new byte[] { 10, 20, 50, 100 }; string s = “Toi di hoc"; writer.Write(number); writer.Write(bytes); writer.Write(s); CuuDuongThanCong.com https://fb.com/tailieudientucntt Reading and Writing Files MemoryStream class: kế thừa Stream class, ghi stream vào nhớ Thuộc tính Phương thức CuuDuongThanCong.com https://fb.com/tailieudientucntt Reading and Writing Files Ví dụ MemoryStream memStrm = new MemoryStream(); StreamWriter writer = new StreamWriter(memStrm); writer.WriteLine("Hello"); writer.WriteLine("Goodbye"); writer.Flush(); FileStream theFile = File.Create(@"c:\inmemory.txt"); memStrm.WriteTo(theFile); CuuDuongThanCong.com https://fb.com/tailieudientucntt Reading and Writing Files BufferedStream class Thường dùng cho NetworkStream Tăng hiệu đọc/ghi liệu FileStream newFile = File.Create(@"c:\test.txt"); BufferedStream buffered = new BufferedStream(newFile); StreamWriter writer = new StreamWriter(buffered); writer.WriteLine("Some data"); CuuDuongThanCong.com https://fb.com/tailieudientucntt Compressing Streams Cho phép nén liệu gốc Kiểu nén: GZIP DEFLATE Các lớp hỗ trợ GZipStream class DeflateStream class CuuDuongThanCong.com https://fb.com/tailieudientucntt Compressing Streams GZipStream class Kế thừa Stream class Dùng để nén/giải nén tập tin theo GZIP Nén tập tin FileStream sourceFile = File.OpenRead(inFilename); FileStream destFile = File.Create(outFilename); GZipStream compStream = new GZipStream(sourceFile, CompressionMode.Compress); byte[] Arr = new byte[4096]; int theByte = sourceFile.Read(Arr, 0, 4096); while(theByte!=0) { compStream.Write(Arr, 0, theByte); theByte = sourceFile.Read(Arr, 0, 4096); } CuuDuongThanCong.com https://fb.com/tailieudientucntt Compressing Streams GZipStream class Giải nén tập tin FileStream sourceFile = File.OpenRead(inFilename); FileStream destFile = File.Create(outFilename); GZipStream compStream = new GZipStream(sourceFile, CompressionMode.Decompress); byte[] Arr = new byte[4096]; int theByte = compStream.Read(Arr, 0, 4096); while (theByte != 0) { destFile.Write(Arr, 0, theByte); theByte = compStream.Read(Arr, 0, 4096); } CuuDuongThanCong.com https://fb.com/tailieudientucntt Compressing Streams DeflateStream class Kết hợp LZ77 Huffman Dùng tương tự GZipStream class Cho kích thước nén nhỏ File nén khơng thể mở chương trình giải nén khác CuuDuongThanCong.com https://fb.com/tailieudientucntt ... CompressionMode.Compress); byte[] Arr = new byte[4 096 ]; int theByte = sourceFile.Read(Arr, 0, 4 096 ); while(theByte!=0) { compStream.Write(Arr, 0, theByte); theByte = sourceFile.Read(Arr, 0, 4 096 ); } CuuDuongThanCong.com... byte[] Arr = new byte[4 096 ]; int theByte = compStream.Read(Arr, 0, 4 096 ); while (theByte != 0) { destFile.Write(Arr, 0, theByte); theByte = compStream.Read(Arr, 0, 4 096 ); } CuuDuongThanCong.com... hợp LZ77 Huffman Dùng tương tự GZipStream class Cho kích thước nén nhỏ File nén khơng thể mở chương trình giải nén khác CuuDuongThanCong.com https://fb.com/tailieudientucntt