banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows Duyệt các file trong thư mục hiện thời bằng int 25h?  XML
  [Programming]   Duyệt các file trong thư mục hiện thời bằng int 25h? 24/07/2008 22:48:29 (+0700) | #1 | 143126
bboy0303
Member

[Minus]    0    [Plus]
Joined: 06/06/2007 11:06:41
Messages: 46
Offline
[Profile] [PM]
Có bạn nào biết làm sao để duyệt các file trong thư mục hiện thời bằng int 25h mà ko sử dụng hàm 4Eh của int 21h ko thì trình bày qua giúp mình với? Mình đọc trong techhelp phần FAT thì chỉ thấy đề cập tới vấn đề duyệt các file trong cả partition thông qua các directory entry, ko biết làm sao để truy cập vào các directory entry của các file trong thư mục hiện hành.
Cám ơn các bạn trước nhé!
[Up] [Print Copy]
  [Question]   Re: Duyệt các file trong thư mục hiện thời bằng int 25h? 24/07/2008 23:21:31 (+0700) | #2 | 143135
mfeng
Researcher

Joined: 29/10/2004 15:16:29
Messages: 243
Offline
[Profile] [PM]
Nếu không dùng Int 21h của DOS mà muốn duyệt nội nội dung cây thư mục thông qua các hàm đọc/ghi đĩa trực tiếp (cấp sector): Int 13h (AH=2), Int 25h, nguyên lý như sau:

Tùy thuộc loại phân vùng FAT hay NTFS mà cần đọc bảng File Allocation Table và hay MFT.

Với FAT:
- Đọc Boot Sectors để lấy địa chỉ thư mục gốc, lấy địa chỉ của FAT.
- Từ địa chỉ thư mục gốc, đọc Directory Table để lấy các directory entry, mỗi entry là tên một file hay folder, bên trong entry này có chứa địa chỉ trỏ tới dữ liệu (nếu là file), hay một Directory Entry khác (nếu là table).
- Đọc nội dung Directory Entry hay nội dung file, cần dùng bảng FAT để tra ra các cluster tiếp theo.

Với NTFS: đọc kĩ tài liệu về MFT.
[Up] [Print Copy]
  [Question]   Re: Duyệt các file trong thư mục hiện thời bằng int 25h? 25/07/2008 00:39:40 (+0700) | #3 | 143158
bboy0303
Member

[Minus]    0    [Plus]
Joined: 06/06/2007 11:06:41
Messages: 46
Offline
[Profile] [PM]
Cám ơn anh mfeng nhé, em sẽ nghiên cứu!
[Up] [Print Copy]
  [Question]   Re: Duyệt các file trong thư mục hiện thời bằng int 25h? 25/07/2008 11:22:23 (+0700) | #4 | 143255
bboy0303
Member

[Minus]    0    [Plus]
Joined: 06/06/2007 11:06:41
Messages: 46
Offline
[Profile] [PM]
Các anh ơi, em đọc boot sector của partition C của máy em rồi, em có 1 vài thắc mắc muốn hỏi mọi người đc ko ạ?
- ở offset +0eh chứa boot and reserved sectors có giá trị là 26h thì có phải là địa chỉ của bảng fat là 27h ko ạ?
- thư mục gốc nằm ngay sau bảng fat thì mình chỉ cần xác định kich thước của fat và số lượng fat là ra địa chỉ của thư mục gốc đúng ko ạ? Kích thước của fat nằm ở offset +16h của boot sector, nhưng sao em đọc thì thấy nó lại bằng 0?
-cái directory table là như thế nào ạ, nó có giống directory entry ko ạ?
[Up] [Print Copy]
  [Question]   Re: Duyệt các file trong thư mục hiện thời bằng int 25h? 25/07/2008 23:41:57 (+0700) | #5 | 143319
mfeng
Researcher

Joined: 29/10/2004 15:16:29
Messages: 243
Offline
[Profile] [PM]
Bạn đọc kĩ tài liệu về bảng FAT http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx để giải đáp các thắc mắc trên.
[Up] [Print Copy]
  [Question]   Re: Duyệt các file trong thư mục hiện thời bằng int 25h? 26/07/2008 21:46:31 (+0700) | #6 | 143460
bboy0303
Member

[Minus]    0    [Plus]
Joined: 06/06/2007 11:06:41
Messages: 46
Offline
[Profile] [PM]
Thế là xong, con fatgen103.doc này lợi hại quá, giờ em mới biết fat32 nó khác fat16 nhiều đến thế nào, cám ơn anh mfeng nhé!!!
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|