CNPM
Khoa CNTT
Ậ Ì Ậ Ấ
L
Ậ
P TR
Ì
NH NH
Ậ
P XU
Ấ
T
IO
C4W - 1
Phạm Hoàng Hải
CNPM
Khoa CNTT
1. NỘI DUNG
Xử lý hệ thống tập tin / thư mục
Đọc / Xuất File
Nén và Giải nén tập tin
C4W - 2
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
NHU CẦU?
Làm sao biết được trên hệ thống có
những ổ đĩa nào?
Làm sao lấy được danh sách tậptin
Làm
sao
lấy
được
danh
sách
tập
tin
và thư mục con của một thư mục nào
đó?
Làm sao truy xuất đượccácthuộc tính
Làm
sao
truy
xuất
được
các
thuộc
tính
của một tập tin, thư mục?
Làm sao giám sát được sự thay đổi
củamộttậptin thư mục?
của
một
tập
tin
,
thư
mục?
…
C4W - 3
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
CÁC LỚP HỖ TRỢ?
DriveInfo class
DirectoryInfo class
FileInfo class
Path class
FileSystemWatcher class
FileSystemWatcher
class
File class
Directory class
C4W - 4
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
LẤY DANH SÁCH Ỗ ĐĨA
PHƯƠNG THỨC
DriveInfo []
Lấy danh sách toàn bộ các ỗ đĩa
DriveInfo
[]
GetDrives()
Lấy
danh
sách
toàn
bộ
các
ỗ
đĩa
trong hệ thống
C4W - 5
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
DRIVEINFO
MỘT SỐ THUỘC TÍNH CƠ BẢN
AvailableFreeSpace
Xác định dung
lượng trống
của
AvailableFreeSpace
Xác
định
dung
lượng
trống
của
ổ đĩa
DriveFormat Lấy thông tin định dạng
NTFS/FAT32
ổ
DriveType Thông tin loại
ổ
đĩa
IsReady Trạng thái ổ đĩa, ỗ đĩa có cho
phép truy xuất không
Name
Tên ỗ đĩa
Name
Tên
ỗ
đĩa
RootDirectory Lấy thư mục gốc của ỗ đĩa
TotalFreeSpace Tổng dung lượng trống ỗ đĩa
T
ota
l
S
iz
e
T
ổ
n
g
du
n
g
l
ượ
n
g
ỗ
đ
ĩ
a
ota S e
ổ gdu g ượ g ỗ đ a
VolumeLabel Nhãn ổ đĩa
C4W - 6
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
DriveType Enum
CÁC LOẠI Ỗ ĐĨA
CDRom Ỗ đĩa quang CD-ROM, DVD…
Fixed Ỗ đĩa cứng
Network Ổ đĩa mapped từ trên mạng
NorrotDirectory Ỗ đĩa không có thư mục gốc
RAM Ỗ đĩa tạo từ RAM
Removable Ỗ đĩa dạng Removable
Unknow Ỗ đĩa không xác định
C4W - 7
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
FILESYSTEMINFO
FileSystemInfo: Lấy thông tin hệ thống
của tập tin – thư mục
MỘT SỐ THUỘC TÍNH CƠ BẢN
Attributes Thuộc tính tập tin – thư mục
CreationTime Lấy ngày tạo lập
Exists Kiểm tra tập tin thư mục có tồn
tại
Extension Lấy phần mở rộng của tập tin
F llN
Lấ đờ dẫ đầ đủ
F
u
llN
ame
Lấ
y
đ
ư
ờ
ng
dẫ
n
đầ
y
đủ
LastAccessTime Lần truy cập gần nhất trên tập
tin – thư mục
LastWriteTime
Lần ghi gầnnhấttrêntậptin
–
LastWriteTime
Lần
ghi
gần
nhất
trên
tập
tin
thư mục
Name Lấy trên tập tin – thư mục
C4W - 8
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
FILESYSTEMINFO
MỘT SỐ PHƯƠNG THỨC CƠ BẢN
Delete
Xóa tậptinhoặcthư mục
Delete
Xóa
tập
tin
hoặc
thư
mục
Refresh Cập nhật lại các thông tin thuộc
tính
C4W - 9
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
ĐỐI TƯỢNG DIRECTORYINFO
CÁC THUỘC TÍNH
Parent
Lấythư mụcchacủathư mục
Parent
Lấy
thư
mục
cha
của
thư
mục
hiện hành
Root Lấy đường dẫn của thu mục
hiện hành
C4W - 10
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
DIRECTORYINFO
CÁC PHƯƠNG THỨC XỬ LÝ
Create
Tạomớimột đốitượng
Create
Tạo
mới
một
đối
tượng
DirectoryInfo
CreateSubdirectory Tạo mới một thư mục, là thư
mục con của thư mục hiện
hành
hành
.
GetDirectories Lây danh sách của toàn bộ các
thư mục trong thư mục hiện
hành.
GetFiles Lấy danh sách toàn bộ các file
trong thư mục hiện hành.
GetFileSystemInfos Lây ra thông tin FileSystemInfo
thư mụchiệnhành
thư
mục
hiện
hành
.
MoveTo Di chuyển thư mục hiện hành
đến một nơi khác
C4W - 11
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
ĐỐI TƯỢNG FILEINFO
CÁC THUỘC TÍNH CƠ BẢN
Directory
Lấy đốitượng DirectoryInfo
Directory
Lấy
đối
tượng
DirectoryInfo
chứa tập tin hiện hành
DirectoryName Lấy tên thư mục chứa tập tin
hiện hành
ỉ
IsReadOnly Trạng thái file ch
ỉ
đọc
Length Kích thuốc của file.
C4W - 12
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
FILEINFO
MỘT SỐ PHƯƠNG THỨC CƠ BẢN
AppendText
Tạorađốitượng StreamWriter,
AppendText
Tạo
ra
đối
tượng
StreamWriter,
cho phép ghi thêm thông tin
vào File
CopyTo Copy file đến thư mục khác
Create Tạo mới file dựa trên thông tin
hiện hành.
CreateText Tạo mới một StreamWriter cho
p
hé
p
g
hi dữ li
ệ
u.
ppg ệ
Decrypt Giả mã file bị mã hóa bởi người
dùng
Encrypt Mã hóa file
ễ ế
MoveTo Di chuy
ễ
n file đ
ế
n vị trí mới
Open Mỡ file (read, Read/Write,…)
OpenRead… Mở file với chế độ Read-Only
C4W - 13
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
FILESYSTEMWATCHER
MỘT SỐ THUỘC TÍNH CƠ BẢN
EnableRaisingEve
Bật/tắtviệc theo dõi file hay thư
EnableRaisingEve
nts
Bật
/
tắt
việc
theo
dõi
file
hay
thư
mục
Filter Thiết lập filter các file cần theo
dõi. “ ” Theo dõi toàn bộ file
IncludeSubdirecto
ries
Chỉ định có theo dõi các thư
mục con không
NotifyFilter Thiết lập theo dõi các loại thay
đ
ổ
i. M
ặ
c đ
ị
nh Enable
(
T
ạ
o
,
Xóa
,
ặ ị ( ạ ,,
Sửa Tên, Chỉnh Sửa).
Path Lấy đường dẫn của thu mục
đang theo dõi.
C4W - 14
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
FILESYSTEMWATCHER
PHƯƠNG THỨC XỬ LÝ
WaitingForChang
ed
Gọi xử lý theo dõi thư mục/ tập
tin.
CÁC SỰ KIỆN PHÁT SINH
Changed
Phát sinh khi có sự thay đổi
Changed
Phát
sinh
khi
có
sự
thay
đổi
Created Phát sinh khi có tạo file/directory
Deleted Phát sinh khi xóa file/directory
Renamed
Phát sinh khi đổitên
Renamed
Phát
sinh
khi
đổi
tên
.
C4W - 15
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
CÁC XỬ LÝ CƠ BẢN
Làm sao biết được trên hệ thống có
những ổ đĩa nào?
DriveInfo[] drives = DriveInfo.GetDrives();
foreach (DriveInfo drive in drives)
{
{
Console.WriteLine("Drive: {0}", drive.Name);
Console.WriteLine("Type: {0}", drive.DriveType);
}
C4W - 16
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
CÁC XỬ LÝ CƠ BẢN
ấ
Làm sao l
ấ
y được danh sách tập tin và
thư mục con của một thư mục nào đó?
DirectoryInfo ourDir = new
DirectoryInfo(@"c:\windows");
Console.WriteLine("Directory: {0}", ourDir.FullName);
foreach (FileInfo file in ourDir GetFiles())
foreach
(FileInfo
file
in
ourDir
.
GetFiles())
{
Console.WriteLine("File: {0}", file.Name);
}
C4W - 17
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
CÁC XỬ LÝ CƠ BẢN
Làm sao truy xuất được các thuộc tính
của một
tập tin, thư mục?
FileInfo ourFile = new FileInfo(@"c:\boot.ini ");
if (ourFile.Exists)
{
{
Console.WriteLine("Filename : {0}", ourFile.Name);
Console.WriteLine("Path : {0}",ourFile.FullName);
}
C4W - 18
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
CÁC XỬ LÝ CƠ BẢN
ổ
Làm sao giám sát được sự thay đ
ổ
i của một
tập tin, thư mục?
FileSystemWatcher watcher = new
Fil S t W t h ()
Fil
e
S
ys
t
em
W
a
t
c
h
er
()
;
watcher.Path = @"c:\";
watcher.Renamed += new
RenamedEventHandler(watcher_Renamed);
th E blRii E t t
wa
t
c
h
er.
E
na
bl
e
R
a
i
s
i
ng
E
ven
t
s =
t
rue;
static void watcher_Renamed(object sender,
RenamedEventArgs e)
{
Console.WriteLine("Renamed from {0} to {1}",
e.OldFullPath, e.FullPath);
}
C4W - 19
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
CÁC XỬ LÝ CƠ BẢN
File class
Cung cấp tất cả các phương thức cần
thiết cho việc tạo file, xóa file, di
ể
chuy
ể
n file, sao chép file…
Directory class
Cung cấp tất cả các phương thức cần
ế
thi
ế
t cho việc tạo thư mục, xóa thư
mục, di chuyển thư mục, lấy danh
sách tập tin, thư mục con…
C4W - 20
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
ĐỐI TƯỢNG PATH
MỘT SỐ PHƯƠNG THỨC CƠ BẢN
ChangeExtension
Thay đổiphầnmở rộng của file
ChangeExtension
Thay
đổi
phần
mở
rộng
của
file
trong đường dẫn. (Lưu ý, chỉ
thay đổi PathString, không thực
sử thay đỗi phần mở rộng)
Combine
Kếthợp2path nếucóthể
Combine
Kết
hợp
2
path
,
nếu
có
thể
.
GetDirectoryName Trả về trên của thư mục trong
đường dẫn.
GetExtension Lấ
y
p
hần mở r
ộ
n
g
của file tron
g
yp ộ g g
đường dẫn
GetFileName Trả về tên của file trong đường
dẫn.
GtFilN With
T ả ề tê ủ fIl t đờ
G
e
tFil
e
N
ame
With
outExtension
T
r
ả
v
ề
tê
n c
ủ
a
fIl
e
t
rong
đ
ư
ờ
ng
dẫn, không lấy phần mở rộng.
C4W - 21
Phạm Hoàng Hải
CNPM
Khoa CNTT
2. TẬP TIN VÀ THƯ MỤC
ĐỐI TƯỢNG PATH
MỘT SỐ PHƯƠNG THỨC CƠ BẢN
GetPathRoot
Trả về thu mụcgốccủa đường
GetPathRoot
Trả
về
thu
mục
gốc
của
đường
dẫn.
GetRandomFileNa
me
Phát sinh một tên file ngẫu nhiên
GtT Fil
Phát i h fil á t hệ thố
G
e
tT
emp
Fil
e
Phát
s
i
n
h
fil
e r
á
c
t
rong
hệ
thố
ng
và trả về đường dẫn của file vừa
phát sinh.
HasExtension Kiểm tra file có phần mở rộng ko
IsPathRooted Kiểm tra đường dẫn có thư mục
gốc không
C4W - 22
Phạm Hoàng Hải
CNPM
Khoa CNTT
3. XỬ LÝ ĐỌC/GHI FILE
CÁC LỚP HỖ TRỢ
Stream class
FileStream class
StreamReader class, StreamWriter
class
BinaryReader class, BinaryWriter
class
MemoryStream class
BufferedStream class
BufferedStream
class
C4W - 23
Phạm Hoàng Hải
CNPM
Khoa CNTT
3. XỬ LÝ ĐỌC/GHI FILE
Stream
MỘT SỐ THUỘC TÍNH CƠ BẢN
CanRead
Luồng hỗ trợ đọc
CanRead
Luồng
hỗ
trợ
đọc
CanSeek Luồng hỗ trợ di chuyễn con trỏ
đọc
CanTimeOut Xác đ
ị
nh xem luồn
g
có timeout
ị g
không
CanWrite Luồng hỗ trợ ghi
Length Chiều dài (theo bytes) của luồng
ReadTimeout Thiết lập timeout cho phương
thức Read
WriteTimeout Thiết lập timeout cho phương
t
h
ức
Wri
te
t ứcte
Position Gets or sets the virtual cursor
for determining where in the
stream the current possition is
C4W - 24
Phạm Hoàng Hải
CNPM
Khoa CNTT
3. XỬ LÝ ĐỌC/GHI FILE
STREAM
MỘT SỐ PHƯƠNG THỨC CƠ BẢN
Close
Đóng luồng và giải phóng tài
Close
Đóng
luồng
và
giải
phóng
tài
nguyên
Flush Đẩy toàn bộ dữ liệu buffer trong
luồng lên trên thiết bị
Read Thực thi phương thức đọc mảng
byte trên luồng.
ReadByte Đọc Byte tiếp theo
Seek
Di chuyểnvị trí con trỏ đọc
Seek
Di
chuyển
vị
trí
con
trỏ
đọc
SetLength Thiết lập chiều dài của Stream
Write Ghi mảng byte lên trên luồng.
WriteByte
Ghi một byte lên trên luồng.
WriteByte
Ghi
một
byte
lên
trên
luồng.
C4W - 25
Phạm Hoàng Hải