Nguyễn Văn Dũng Lớp CĐTH08A
1. Đếm tất cả các tập tin trong một thư mục (không chỉ giới hạn ở tập tin cấp
1).
Tạo Một hàm mang tên “DemTapTin(string path)” trả về giá trị int gồm các
thao tác sau:
Bước 1 : tạo một biến có tên iSoLuong có kiểu int và được gán giá trị bằng 0.
Bước 2 : Kiểm tra thư mục đó có tồn tại hay không bằng phương thức
“Exists()” của Class “Directory”. Ví dụ: Directory.Exists(“d:\programe”);
Nếu “false” (thư mục không tồn tại):
- xuất ra dòng chữ “Thư mục không tồn tại”
- kết thúc quá trình đếm số lượng tập tin.
Nếu “true” (thư mục này tồn tại): chuyển sang bước 3:
Bước 3:đếm số lượng tập tin cấp 1.
- tạo một biến có tên iSoLuong có kiểu int và được gán giá trị bằng 0.
- Sử dụng phương thức GetFiles của class “Directory” để trả về một
mảng chuổi đường dẫn của những file nằm trong thư mục đó. Ví Dụ:
string[] arstrFile = Directory.GetFiles(“d:\programe”); sau đó
dùng thuộc tính Length của mảng arstrFile để đếm số lượng file trong
thư mục đó và gán vào giá trị iSoLuong (iSoLuong =
arstrFile.Length;). Ta cũng có thể dùng trực như sau: iSoLuong =
Directory.GetFiles(“d:\programe”).Length;
Bước 4: sử dụng phương pháp đệ quy để đếm số lượng tập tin trong các thư
mục cấp 1.
- Sử dụng phương thức GetDirectories để trả về một mảng chuổi chứa các
đường dẫn của các thư mục con của thư mục truyền vào. Ví dụ : string[]
arstrMangThuMuc = Directory.GetDirectories(‘d:\programe’) ;
- Sử dụng vòng lặp foreach để chạy từng phần tử của arstrMangThuMuc
Sau đó sử dụng phương pháp đệ quy (gọi lại phương thức
“DemTapTin(string path)” và truyền vào trong hàm này giá trị của
từng phần tử trong mảng arstrMangThuMuc giá trị trả về của hàm này
ta truyền vào iSoLuong
Bước 5 : trả về giá trị iSoLuong.
Nguyễn Văn Dũng Lớp CĐTH08A
Chi tiết Phương thức DemTapTin(string path)
Đoạn Test Phương thức DemTapTin(string path)
Chạy chương trình ta được như sau:
Nhập vào đường dẫn là : d:\programe
Nguyễn Văn Dũng Lớp CĐTH08A
Click phải vào thư mục D:\programe chọn “Properties” ta được như sau:
Nguyễn Văn Dũng Lớp CĐTH08A
2. Đếm số lượng tất cả các thư mục trong 1 thư mục ( không chỉ giới hạn ở
thư mục cấp 1)
Tương tự như đếm các tập tin trong thư mục.
Ta thực hiện như sau:
Tạo Một hàm mang tên “DemThuMucCua(string path)” trả về giá trị int
gồm các thao tác sau:
Bước 1 : tạo một biến có tên iSoLuong có kiểu int và được gán giá trị bằng 0.
Bước 2 : Kiểm tra thư mục đó có tồn tại hay không bằng phương thức
“Exists()” của Class “Directory”. Ví dụ: Directory.Exists(“d:\programe”);
Nếu “false” (thư mục không tồn tại):
- xuất ra dòng chữ “Thư mục không tồn tại”
- kết thúc quá trình đếm số lượng thư mục con.
Nếu “true” (thư mục này tồn tại): chuyển sang bước 3
Bước 3: đếm số lượng thư mục cấp 1.
- Sử dụng phương thức GetDirectories của class “Directory” để trả về
một mảng chuổi đường dẫn của những file nằm trong thư mục đó. Ví Dụ:
string[] arstrDir = Directory. GetDirectories (“d:\programe”); sau
đó dùng thuộc tính Length của mảng arstrDir để đếm số lượng thư mục
con trong thư mục đó và gán vào giá trị iSoLuong (iSoLuong =
arstrDir.Length;). Ta cũng có thể dùng trực như sau: iSoLuong =
Directory.GetDirectories(“d:\programe”).Length;
Bước 4: sử dụng phương pháp đệ quy để đếm số thư mục con của các thư mục
cấp 1.
- Tiếp tục sử dụng phương thức GetDirectories để trả về một mảng chuổi
chứa các đường dẫn của các thư mục con của thư mục truyền vào. Ví dụ :
string[] arstrMangThuMuc =
Directory.GetDirectories(‘d:\programe’) ;
- Sử dụng vòng lặp foreach để chạy từng phần tử của arstrMangThuMuc
- Sau đó sử dụng phương pháp đệ quy (gọi lại phương thức
“DemThuMucCua(string path)” và truyền vào trong hàm này giá trị
Nguyễn Văn Dũng Lớp CĐTH08A
của từng phần tử trong mảng arstrMangThuMuc giá trị trả về của hàm
này ta truyền vào iSoLuong
Bước 5 : trả về giá trị iSoLuong
Chi tiết của phương thức DemThuMucCua(string path).
Đoạn test.
Chạy chương trình ta được như sau:
Nhập vào đường dẫn là: d:\programe