Các giải pháp lập trình CSharp- P38: Các giải pháp lập trình C# khảo sát chiều rộng của thư viện lớp .NET Framework và cung cấp giải pháp cụ thể cho các vấn đề thường gặp. Mỗi giải pháp được trình bày theo dạng “vấn đề/giải pháp” một cách ngắn gọn và kèm theo là các ví dụ mẫu. | 371 Chương 9 File thư mục và I O USAGE WildcardTest directory filterExpression return Directoryinfo dir new DirectoryInfo args 0 Fileinfo files args 1 Hiển thị tên và kích thước file. foreach Fileinfo file in files Name Size Nếu muốn tìm trong thư mục con bạn cần sử dụng đệ quy. Nhiều mục trong chương sử dụng kỹ thuật đệ quy để xử lý file chẳng hạn và . 11. Kiểm tra hai file có trùng nhau hay không 1 Bạn cần so sánh nội dung của hai file và xác định chúng có trùng nhau hay không. Tính mã băm của môi file băng lớp rồi so sánh các mã băm. Có nhiều cách để so sánh nhiều file. Ví dụ có thể xét một phần của file xem có giống nhau hoặc đọc cả file so sánh từng byte. Cả hai cách trên đều đúng nhưng trong một số trường hợp sử dụng mã băm thuận tiện hơn. Một giải thuật băm sinh ra một dạng nhị phân đặc trưng với kích thước nhỏ thường khoảng 20 byte cho file. Có khả năng hai file khác nhau có cùng mã băm nhưng khả năng này hầu như không xảy ra. Thực tế cả những thay đổi nhỏ nhất chẳng hạn chỉ thay đổi một bit của file nguồn cũng có 50 khả năng thay đổi các bit của mã băm. Do đó mã băm thường được sử dụng để phát hiện dữ liệu bị sửa đổi mã băm sẽ được đề cập chi tiết hơn trong chương 14 . Để tạo một mã băm trước hết bạn phải tạo một đối tượng HashAlgorithm bằng phương thức tĩnh . Sau đó gọi để nhận một mảng byte chứa mã băm. Ví dụ dưới đây đọc hai tên file từ đối số dòng lệnh và kiểm tra hai file này có trùng nhau hay không using System using 372 Chương 9 File thư mục và I O using public class CompareFiles private static void Main string args if 2 USAGE CompareFiles fileName fileName return Comparing args 0 and args 1 Tạo đối tượng băm. HashAlgorithm hashAlg Tính mã băm cho file thứ .