CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 384

384
Chương 9: File, thư mục, và I/O

// truy xuất bởi thể hiện hiện tại của ứng dụng.

store = IsolatedStorageFile.GetStore(IsolatedStorageScope.User |

IsolatedStorageScope.Assembly | IsolatedStorageScope.Domain,

null, null);

File được lưu trữ như một phần profile của người dùng, vì vậy người dùng có thể truy xuất
các file này từ bất kỳ máy nào trong mạng LAN nếu roaming profile

3

đã được cấu hình (trong

trường hợp này, phải thiết lập cờ

IsolatedStorageFile.Roaming

khi tạo không gian lưu trữ).

Bằng cách để .NET FrameworkCLR cung cấp các mức cách ly, bạn không phải duy trì sự
tách biệt giữa các file, và không phải lo việc không hiểu rõ cơ chế làm việc sẽ gây mất dữ liệu
quan trọng.

19.

19.

Theo dõi h th ng file đ phát hi n thay đ i

ệ ố

Theo dõi h th ng file đ phát hi n thay đ i

ệ ố

Bạn cần phản ứng khi hệ thống file thay đổi tại một đường dẫn cụ thể (chẳng
hạn sửa hay tạo file).

Sử dụng thành phần

System.IO.FileSystemWatcher

, chỉ định file hoặc đường dẫn

cần theo dõi, và thụ lý các sự kiện

Created

,

Deleted

,

Renamed

, và

Changed

.

Khi liên kết nhiều ứng dụng và các quá trình nghiệp vụ, thường cần tạo một chương trình thụ
động và chỉ trở nên tích cực khi một file được tạo ra hoặc bị thay đổi. Bạn có thể tạo kiểu
chương trình thế này bằng cách quét định kỳ qua một thư mục, nhưng lại gặp phải vấn đề cân
bằng. Quét càng thường xuyên, càng tốn tài nguyên hệ thống. Quét càng ít, càng lâu phát hiện
được thay đổi. Cách tiện nhất là sử dụng lớp

FileSystemWatcher

để phản ứng trực tiếp các sự

kiện file của Windows.
Để sử dụng

FileSystemWatcher

, bạn phải tạo một thể hiện và thiết lập các thuộc tính sau:

Path

—chỉ định đường dẫn cần theo dõi.

Filter

—chỉ định kiểu file cần theo dõi.

NotifyFilter

—chỉ định kiểu thay đổi cần theo dõi.

FileSystemWatcher

sinh ra bốn sự kiện chính:

Created

,

Deleted

,

Renamed

, và

Changed

. Các sự

kiện này cung cấp thông tin qua đối số

FileSystemEventArgs

, bao gồm tên file (

Name

), đường

dẫn đầy đủ (

FullPath

), kiểu thay đổi (

ChangeType

). Sự kiện

Renamed

cung cấp thể hiện

RenamedEventArgs

dẫn xuất từ

FileSystemEventArgs

, và thêm thông tin về tên file ban đầu

(

OldName

OldFullPath

). Nếu cần, bạn có thể vô hiệu các sự kiện này bằng cách thiết lập

thuộc tính

FileSystemWatcher.EnableRaisingEvents

false

. Dễ dàng thụ lý các sự kiện

Created

,

Deleted

, và

Renamed

. Nhưng nếu muốn sử dụng sự kiện

Changed

, bạn cần sử dụng

thuộc tính

NotifyFilter

để chỉ định kiểu thay đổi cần theo dõi. Bằng không, chương trình của

bạn có thể bị sa lầy bởi một loạt các sự kiện khi file bị thay đổi.

3

Roaming profile được tạo bởi người quản trị hệ thống và được lưu trữ trên một server. Profile này có

sẵn mỗi khi bạn đăng nhập vào bất kỳ máy tính nào trên mạng. Bất cứ thay đổi nào cũng khiến roaming
profile được cập nhật lại trên server.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.