TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TAM TIN HOC Khái niệm về các loại tập tin ° C6 3 loại dữ liệu kiểu tập tin: — Tập tin văn bản Text File — Tập tin định kiêu Typed File
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Trang 2TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Bài 7: Xử lý nhập/xuất dữ liệu
° Khái niệm về các loại tập tin
° Xử lý hệ thông tập tin và thư mục qua các lớp
°_ Xử lý đọc ghi tập tin
8tiết
Trang 3-TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Khái niệm về các loại tap tin
®- Đối với các kiêu dữ liệu như kiểu só, kiêu
mang, kiéu cau trúc thì dữ liệu được tổ chức trong bộ nhớ trong (RAM) của máy tính nên khi kết thúc việc thực hiện chương trinh thi dữ
liệu cũng bị mat
° Dé giải quyết vẫn đề, người ta đưa ra kiêu tap
tin (file) cho phép lưu trữ dữ liệu ở bộ nhớ ngoài (dia) Khi kết thúc chương trình thi dữ
liệu vân còn do đó chúng ta có thé str dung nhiều lần.
Trang 4TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Khái niệm về các loại tập tin
° C6 3 loại dữ liệu kiểu tập tin:
— Tập tin văn bản (Text File)
— Tập tin định kiêu (Typed File)
— Tập tin không định kiêu (Untyped File)
Trang 5TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Khái niệm về các loại tập tin
° Tap tin van ban (Text File):
— La loai tap tin dung dé ghi các ký tự lên đĩa, các ký tự
nay duoc luu tre duo dang ma Ascii
— Điễm đặc biệt là dữ liệu của tập tin được lưu trữ thành các dòng, mỗi dòng được kết thúc bằng ky tu xuông dòng (new line), ký hiệu ^n; ký tự này là sự kết hợp của
2 ky tw CR (Carriage Return - Vé dau dong, ma Ascii la 13) va LF (Line Feed - Xu6ng dong, ma Ascii la 10)
— Mỗi tập tin được kết thúc bởi ký tự EOF (End Of File) có
ma Ascii la 26
—_ Tập tin văn bản chỉ có thể truy xuất theo kiêu tuân tự.
Trang 6TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Khái niệm về các loại tập tin
° Tập tin định kiểu (Typed File)
— La loai tap tin bao gồm nhiều phân tử có cùng kiểu:
char, int, long, cau trúc và được lưu trữ trên đĩa dưới dạng một chuỗi các byte liên tục
° Tập tin không định kiêu (Untyped File)
— Là loại tập tin mà dữ liệu của chúng bao gồm các câu trúc dữ liệu nhưng người dùng không quan tâm đến nội dung hoặc kiêu của nó mà chỉ lưu ÿ đến các yêu tô vật
lý của tập tin như độ lớn và các yêu tố tác động lên tập
tin mà thôi.
Trang 7TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
— Sau khi đọc/ghi xong dữ liệu, con trỏ sẽ chuyên dịch thêm một phân tử vê phía cuối tập tin Sau phần tử dữ liệu cuối cùng của tập tin là dầu kết thúc tập tin EOF (End Of File)
Trang 8TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Khái niệm về các loại tập tin
° Bién tap tin:
— Là một biên thuộc kiểu dữ liệu tập tin dùng để đại diện
cho mét tap tin Dữ liệu chứa trong một tập tin được truy xuất qua các thao tác với thông sô là biễn tập tin đại
diện cho tập tin đó
Trang 9TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Bài 7: Xử lý nhập/xuất dữ liệu
° Khái niệm về các loại tập tin
° Xử lý hệ thông tập tin và thư mục qua các lớp
°_ Xử lý đọc ghi tập tin
Trang 10TRUONG DAI HOC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Trang 11TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Các lớp hệ thông tap tin
° Bén trong namespace co tên System./O la mot
tap hợp các class được sử dụng đề định vị và thao tác các tập tin, thư mục và thiết bị Cac class hệ thông tập tin được chia thành 2 loại
class: informational va utility
° Hau hét cac class loai informational dan xuat từ
class co’ so FileSystemInfo Cac class nay
trưng tất cả thông tin hệ thống liên quân các đồi
tượng hệ thông tập tin Đó là các class có tên
Filelnfo và Directorylnio
m.a——š——>—Ặ—ïẳằẳẴẶẪẮ—ẶỪẶ—»ỪẶẶẶẶ_—
Trang 12TRUONG DAI HOC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Các lớp hệ thông tap tin
° Ngoài ra, class Drivelnfo trình bày thiết bị trong hệ
thống tập tin, mặc dù nó vẫn là một class thuộc loại informational, tuy nhiên nó không dẫn xuất từ
FileSysteminfo boi lẽ nó không chia sẻ các kiêu hành vi
chung (ví dụ, bạn có thê xóa các tập tin và thư mục,
nhưng không thê xóa các thiết bị)
° Các class loại utility cung cấp các phương thức static
(hoặc phương thức shared trong Visual Basic) đề thực thi một số hoật động trên các đối tượng hệ thống tập tin như các tập tin, thư mục và hệ thông tập tin đường dẫn
(paths) Cac class loại utility bao gồm các class : File,
Directory, và Path
Trang 13TRUONG DAI HOC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
FileSystemInfo Class
° FileSystemInfo cung cấp các chức năng cơ bản cho tất
cả các lớp xử lý hệ thông tập tin và thư mục
° Bảng các thuộc tính chính của FileSystemlnfo
Thuộc tính Ý nghĩa
Gán hoặc lấy giá trị các thuộc tính của tập tin hay
Attributes thư mục hiện hành
Gán hoặc lấy giá trị về thời gian tạo lập của tập tin
Creation Time hay thư mục
Exists Kiểm tra tập tin hay thư mục có tôn tại hay không
Extension Lấy thông tin phần mở rộng (kiểu) của tap tin
Trang 14TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Gan hoặc lấy giá trị về thời gian truy cập cuối cùng
LastAccess lime cua tap tin hay thu muc
san Gets or sets the time the file or directory was last LastWriteTime written to
Name Trả về tên của tập tin hay thư mục
FullName Lây đường dẫn đây đủ của tập tin hay thư mục
Trang 15
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Delete Xóa tập tin hay thư mục trong hệ thống tập tỉn
Cập nhật lại dữ liệu trong class với thông tin Refresh mới nhất từ hệ thống tập tin
Trang 16TRUONG DAI HOC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Trang 17TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Filelnfo Class
° Filelnfo cung cap cac chic nang co’ ban dé truy xuất và
thao tác với một tập tin trong hệ thông tập tin
° Bảng các thuộc tính chính của Filelnfo
Trả về thư mục chứa tập tin hiện hành đang
DirectoryName Wave tên của thư mục chứa tập tin đang truy
IsReadOnly Lay và thiết lập thông tin chỉ đọc cho tập tin
Length Kích thước của tập tin
Trang 18
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Filelnfo Class
° Bang cac phuong thuc chinh cua Filelnfo
Tạo một đối tượng StreamWriter cho phép ghi
thêm văn bản vào trong tập tin
Tạo một đối tượng StreamWriter cho phép ghi
Create Text van ban vao trong tap tin
Trang 19
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
OpenText | Mỏ tập tin và trả về một SfreamEeader cho phép đọc nội
dung bên trong tập tin
OpenWrite | Mỏ tập tin ở chế độ chỉ ghi
Replace Thay thê nội dung của tập tin bằng thông tin trong File/nfo
Trang 20TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
° Sao chép tap tin
FileTnfn ourFile = new FileInfo(@"c:\boot.ini");
ourFile.CopyTo(@"c:\boot.bak");
Trang 21
TRUONG DAI HOC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Trang 22TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
DirectorylInfo Class
° DirectoryInfo cung cap cac chirc nang co ban đề truy
xuât và thao tác với một thư mục trong hệ thông tập tin
° Bảng các thuộc tính chính của Directorylnfo
Thuộc tính Ý nghĩa
Parent Trả về thư mục chứa (thư mục cha) của thư mục
hiện hành đang truy xuât
Root Trả về thư mục gốc trong chuỗi đường dẫn của thư
mục hiện hành
Trang 23
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Trả về một mảng đối tượng kiêu Directorylnfo
GetDirectories gôm các thư mục con trong thư mục hiện
hành
Trả về một mảng đối tượng kiêu Filelnfo gồm
GetfFiles các tập tin trong thư mục hiện hành
Trang 24TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
DirectoryInfo Class
°* Bang các phương thức chính của Directorylnfo
Trả về một mảng đối tượng kiều
GetFileSystemlnfos | FileSystemlnfo gôm các tập tin và thư mục
trong thư mục hiện hành
MoveTo Di chuyên thư mục hiện hành sang vị trí khác
Trang 25TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Trang 26TRUONG DAI HOC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Trang 27TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Drivelnfo Class
° Directorylnfo cung cap các chức năng cơ bản đề truy
xuất và thao tác với một ô đĩa trong hệ thống tap tin
° Bảng các thuộc tính chính của Drivelnfo
Tên thuộc tính
Tra vé kích thước còn trồng cho phép lưu trữ
AvailableFreeSpace tran 6 dia
, Trả về thông tin dinh dang cua 6 dia (NTFS,
DriveType Trả về kiéu cua 6 dia (6 dia clrng, CDRom )
Trang 28TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Drivelnfo Class
° Bang cac thuoc tinh chinh cua Drivelnfo
Trả về trạng thái của 6 dia (co sẵn sàng cho phép
truy xuât hay không)
Trang 29TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Trả về tất cả các ô đĩa hiện có trên hệ thống
GetDrives (phương thức tính — static)
Trang 30TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Drivelnfo Class
° Bang cac thanh phan cua kiéu liét ké DriveType
CDRom 6 dia quang (CD-ROM, DVD )
Fixed 6 đĩa có định (ỗ đĩa cứng)
Network 6 dia mang
NoRootDirectory | 6 dia khéng co thu muc gốc
Ram 6 dia RAM (duoc tao tip RAM)
Removable 6 dia di déng (USB)
Unknown 6 dia không xác định
Trang 31TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Drivelnfo Class
° Vi du: duyét qua cac 6 dia co trong hé thong
{
Trang 32TRUONG DAI HOC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Trang 33TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Path Class
° Path cung cap cac chtrc năng cơ bản đề truy xuất và thao
tác với đường dân hệ thông tập tin
° Bảng các phương thức chính của Path
Phương thức Ý nghĩa
Trả về chuỗi đường dẫn đồng thời đôi phần mở
rộng của tập tin trong chuôi đường dân ChangeExtension
Trang 34TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
GetFileNameWithoui | Trả về kiêu của tập tin hiện hành không có
Trang 35TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
GetRandomFileName_ | !T3 về tên tập tin được lây một cách ngấu
nhiên
GetTempFileName Trả vê tên của thư mục tạm (thư mục temp)
ứng với người dùng hiện hành
GetTempPath Trả về đường dân đên thư mục tạm (thư
mục temp)
HasExtension Kiêm tra trong đường dân có phân mở rộng
của tập tin hay không
IsPathRooted Kiem tra đường dân có bát đầu từ thư mục
gôc (tên ô đĩa) hay không
Trang 36
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Console.WriteLine ("Change Path: {0}",
Path.ChangeExtension{ourPath, "bak"));
Trang 37TRUONG DAI HOC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Trang 38TRUONG DAI HOC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
FileSystemWatcher Class
° FileSystemWatcher cung cấp các chức năng co ban dé
giám sát các thay đồi trong hệ thống tập tin và thư mục
° Bảng các thuộc tính chính cua FileSystemWatcher
Lây và thiết lập danh sách tập tin sẽ được lọc khi
Filter giám sát Nêu không thiét lap thi sé giam sat tat
ca cac tap tin
IncludeSubdirectories | Cho phép giám sát các thư mục con hay không
Trang 39dung trong tập tin)
Path Đường dẫn đến thư mục cân giám sát
° Phương thức chính của FileSystemWatcher
WaitForChanged Phương thức đồng bộ trong việc giám sát một
thư mục và trả về câu trúc bao gồm tất cả các thay đổi trên thư mục đó
Trang 40TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Changed ney fa met {ap in nay mot thư mục bị thay đồi
Deleted nay cúc đuờc điểm e hay một thư mục bị xóa trong
Renamed Kay Ma \ap in hay mot thư mục bị đồi tên
Trang 41TRUONG DAI HOC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
FileSystemWatcher Class
* Vi du 1: giam sat viéc tao va xoa tập tin, thư mục trên
thu muc goc dia C:\
// khai bao phuong thic xt? lý sự kiện
Static void watcher Changed(object sender, fFilesystemEventArgs @€)
{
Console.WriteLine ("Directory changed({O}): {1}”, e.ChangeType, e€@.FullPath);
Static void Main({string[] args)
{
FilesSystemWUatcher watcher = new FileSystemWatcher ()-;
watcher.Path = @"c:\";
##/ chỉ định phương thức xử lý cho sự kiện
watcher.Created += new FileSystemEventHandler (watcher Changed) ; watcher.Deleted += new FilesystemEventHandler (watcher Changed);
// bat dau giam sát
watcher.EnableRaisingEvents = true;
Console.ReadLine[);
Trang 42TRUONG DAI HOC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
FileSystemWatcher Class
° Vi du 2: giam sat viéc stra doi tén tap tin va thư mục trên
thu muc goc dia C:\
// khai bao phuong thức xử lý sự kiện
Static void watcher Renamed(object sender, FereruerlEveritrlrdgs BỊ
{
Console.WriteLine ("Renamed from {0} to {1}", e.OldadFullPatrh, e.FPullPatrh);
Static void Main({string[] args)
{
FilesSystemUatcher watcher = new FileSystemWatcher ()-;
watcher.Path = @"c:\";
ff chi dinh phwong thitc xt l¥ cho su kién
// bat dau giám sát
watcher.EnableRaisingEvents = true;
Console.ReadLine();
Trang 43
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Bài 7: Xử lý nhập/xuất dữ liệu
° Khái niệm về các loại tập tin
° Xử lý hệ thông tập tin và thư mục qua các lớp
°_ Xử lý đọc ghi tập tin
8tiết
Trang 44-TRUONG DAI HOC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Xw ly doc ghi tap tin
Trang 45TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TAM TIN HOC
Stream
° Sw dung Stream Ia cach pho bién nhất đề truy xuất dữ
liệu dạng tuân tự hay ngâu nhiên trong NET Framework
° Bang cac thu6c tinh cua Stream:
Thuộc tính Ý nghĩa
Kiểm tra có hỗ đọc dữ liệu theo luông (stream)
CanFead hay không