Đo kích thước Folder (directory)
Đo tổng kích thước của một Folder bao gồm tổng dung lượng files và tổng dung lượng các folder con bằng C#. Đây là một tiện ích cho việc tính toán kích thước folder khi di chuyển, nén ....
Giải thuật đệ qui.
Đệ qui là một giải thuật mà chúng ta sử dụng để tính toán lặp lại tác vụ tương tự. Tôi sẽ viết một bài chi tiết về giải thuật này, ở đây chúng ta cùng xét ví dụ. Folder A chứa các Folder con như: A1, A2, và các files: F1, F2, trong A1 chứa các files: A11,A12 ... khi đó việc đo dung lượng của Folder A phải là tổng của các file F1, F2 + Tổng dung lượng của Folder con là A1, A2.
Giải quyết vấn đề.
Để đo folder, chúng ta sẽ sử dụng hàm thư viện System.IO để kiểm tra các thông tin của File và Folder.
Tôi thực hiện hàm đo kích thước như sau:
private
static long DirectorySize(string startPath){
// Lấy tổng số file trong folder
string[] fileNames = System.IO.Directory.GetFiles(startPath, "*.*");
// Tính tổng độ lớn
long totalSize = 0;
foreach (string fileName in fileNames){
// Sử dụng FileInfo để đo kích thước file
System.IO.FileInfo info = new System.IO.FileInfo(fileName);
totalSize += info.Length;
}
// Lấy danh sách các folder con của Folder hiện tại.
string[] directoryNames = System.IO.Directory.GetDirectories(startPath);
foreach (string directoryName in directoryNames){
// Thực hiện hàm đệ qui: gọi lại hàm DirectorySize để đo kích thước các folder con.
totalSize += DirectorySize(directoryName);
}
return totalSize; // Total size.
}
Ở đây, chúng ta quan tâm đến trình tự thực hiện như sau:
1. Lấy về tổng số files có trong Folder
2. Dùng vòng lặp foreach để đo dung lượng của file.
3. Lấy danh sách các folder con của Folder hiện tại
4. Dùng lại hàm để đo kích thước folder con (Đệ qui).
Tôi mong rằng hàm lấy kích thước folder ở trên sẽ hữu ích cho bạn.
Tác giả: 1#1