File , Thư mục và IO phần cuối
Số trang: 7
Loại file: pdf
Dung lượng: 174.70 KB
Lượt xem: 4
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
(Bỏ qua phần mã designer.) private void mnuOpen_Click(object sender, System.EventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "Rich Text Files (*.rtf)|*.RTF|" + "All files (*.*)|*.*"; dlg.CheckFileExists = true; dlg.InitialDirectory = Application.StartupPath; if (dlg.ShowDialog() == DialogResult.OK) { rtDoc.LoadFile(dlg.FileName); rtDoc.Enabled = true; } } private void mnuSave_Click(object sender, System.EventArgs e) { SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = "RichText Files (*.rtf)|*.RTF|Text Files "|All files (*.*)|*.*"; dlg.CheckFileExists = true; dlg.InitialDirectory =...
Nội dung trích xuất từ tài liệu:
File , Thư mục và IO phần cuốiusing System;using System.Drawing;using System.Windows.Forms;public class SimpleEditForm : System.Windows.Forms.Form { private System.Windows.Forms.MenuItem mnuFile; private System.Windows.Forms.MenuItem mnuOpen; private System.Windows.Forms.MenuItem mnuSave; private System.Windows.Forms.MenuItem mnuExit; private System.Windows.Forms.RichTextBox rtDoc; // (Bỏ qua phần mã designer.) private void mnuOpen_Click(object sender, System.EventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = Rich Text Files (*.rtf)|*.RTF| + All files (*.*)|*.*; dlg.CheckFileExists = true; dlg.InitialDirectory = Application.StartupPath; if (dlg.ShowDialog() == DialogResult.OK) { rtDoc.LoadFile(dlg.FileName); rtDoc.Enabled = true; } } private void mnuSave_Click(object sender, System.EventArgs e) { SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = RichText Files (*.rtf)|*.RTF|Text Files (*.txt)|*.TXT + |All files (*.*)|*.*; dlg.CheckFileExists = true; dlg.InitialDirectory = Application.StartupPath; if (dlg.ShowDialog() == DialogResult.OK) { rtDoc.SaveFile(dlg.FileName); } } private void mnuExit_Click(object sender, System.EventArgs e) { this.Close(); }} 1.1 Sử dụng không gian lưu trữ riêng Bạn cần lưu dữ liệu vào file, nhưng ứng dụng của bạn không được cấp FileIOPermission để sử dụng ổ đĩa cứng. Sử dụng các lớp IsolatedStorageFile và IsolatedStorageFileStream thuộc không gian tên System.IO.IsolatedStorage. Các lớp này cho phép ứng dụng ghi dữ liệu vào một file trong thư mục của một người dùng cụ thể mà không cần được cấp phép truy xuất trực tiếp ổ đĩa cứng cục bộ..NET Framework hỗ trợ không gian lưu trữ riêng, tức là cho phép bạn đọc và ghi vào hệthống file ảo của người dùng cụ thể mà CLR quản lý. Khi bạn tạo các file lưu trữ riêng,dữ liệu tự động được lưu vào một nơi duy nhất trong đường dẫn profile của người dùng(thông thường đường dẫn này có dạng C:\Documents and Settings\[username]\LocalSettings\Application Data\IsolatedStorage\ [guid_identifier]).Một lý do để sử dụng không gian lưu trữ riêng là trao cho một ứng dụng có-độ-tin cậy-một-phần có khả năng hạn chế khi lưu trữ dữ liệu (xem mục 13.1 để có thêm thông tin vềmã lệnh có-độ-tin-cậy-một-phần). Ví dụ, chính sách bảo mật CLR mặc định cấp cho mãlệnh cục bộ có FileIOPermission không hạn chế, tức là có quyền đọc và ghi bất kỳ filenào. Mã lệnh thực thi từ một máy chủ ở xa trên mạng Intranet cục bộ tự động được cấp ítquyền hơn—thiếu mất FileIOPermission, nhưng có IsolatedStoragePermission, tức là cókhả năng sử dụng không gian lưu trữ riêng (chính sách bảo mật cũng hạn chế dung lượngtối đa có thể được sử dụng trong không gian lưu trữ riêng). Một lý do khác để sử dụngkhông gian lưu trữ riêng là bảo vệ dữ liệu tốt hơn. Ví dụ, đối với dữ liệu trong không gianlưu trữ riêng của một người dùng, những người dùng khác không phải là nhà quản trị sẽkhông được quyền truy xuất.Đoạn mã dưới đây minh họa cách truy xuất không gian lưu trữ riêng:using System;using System.IO;using System.IO.IsolatedStorage;public class IsolatedStoreTest { private static void Main() { // Tạo không gian lưu trữ riêng cho người dùng hiện hành. IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForAssembly(); // Tạo một thư mục tại gốc của không gian lưu trữ riêng. store.CreateDirectory(MyFolder); // Tạo một file trong không gian lưu trữ riêng. Stream fs = new IsolatedStorageFileStream( MyFile.txt, FileMode.Create, store); StreamWriter w = new StreamWriter(fs); // Ghi file như bình thường. w.WriteLine(Test); w.Flush(); fs.Close(); Console.WriteLine(Current size: + store.CurrentSize.ToString()); Console.WriteLine(Scope: + store.Scope.ToString()); Console.WriteLine(Contained files include:); string [] files = store.GetFileNames(*.*); foreach (string file in files) { Console.WriteLine(file); } Console.ReadLine(); }}Theo mặc định, mỗi không gian lưu trữ riêng được tách biệt bởi người dùng và assembly.Điều này có nghĩa là khi cùng một người chạy cùng một ứng dụng, ứng dụng này sẽ truyxuất dữ liệu trong cùng không gian lưu trữ riêng. Tuy nhiên, bạn có thể tách biệt thêm bởimiền ứng dụng để nhiều thể hiện của cùng một ứng dụng nhận các không gian lưu trữriêng khác nhau, như ví dụ sau:// Truy xuất không gian lưu trữ riêng của người dùng// và assembly hiện tại (tương tự ví dụ trên).store = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);// Truy xuất không gian lưu trữ riêng của người dùng, assembly,// và miền ứng dụng hiện hành. Nói cách khác, dữ liệu này chỉ được// 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ể truyxuất các file này từ bất kỳ máy nào trong mạng LAN nếu roaming profile1[1][3] đã đượccấu hình (trong trường hợp này, phải thiết lập cờ IsolatedStorageFile.Roaming khi tạokhông gian lưu trữ). Bằng cách để .NET Framework và CLR 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. 1.2 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 ...
Nội dung trích xuất từ tài liệu:
File , Thư mục và IO phần cuốiusing System;using System.Drawing;using System.Windows.Forms;public class SimpleEditForm : System.Windows.Forms.Form { private System.Windows.Forms.MenuItem mnuFile; private System.Windows.Forms.MenuItem mnuOpen; private System.Windows.Forms.MenuItem mnuSave; private System.Windows.Forms.MenuItem mnuExit; private System.Windows.Forms.RichTextBox rtDoc; // (Bỏ qua phần mã designer.) private void mnuOpen_Click(object sender, System.EventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = Rich Text Files (*.rtf)|*.RTF| + All files (*.*)|*.*; dlg.CheckFileExists = true; dlg.InitialDirectory = Application.StartupPath; if (dlg.ShowDialog() == DialogResult.OK) { rtDoc.LoadFile(dlg.FileName); rtDoc.Enabled = true; } } private void mnuSave_Click(object sender, System.EventArgs e) { SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = RichText Files (*.rtf)|*.RTF|Text Files (*.txt)|*.TXT + |All files (*.*)|*.*; dlg.CheckFileExists = true; dlg.InitialDirectory = Application.StartupPath; if (dlg.ShowDialog() == DialogResult.OK) { rtDoc.SaveFile(dlg.FileName); } } private void mnuExit_Click(object sender, System.EventArgs e) { this.Close(); }} 1.1 Sử dụng không gian lưu trữ riêng Bạn cần lưu dữ liệu vào file, nhưng ứng dụng của bạn không được cấp FileIOPermission để sử dụng ổ đĩa cứng. Sử dụng các lớp IsolatedStorageFile và IsolatedStorageFileStream thuộc không gian tên System.IO.IsolatedStorage. Các lớp này cho phép ứng dụng ghi dữ liệu vào một file trong thư mục của một người dùng cụ thể mà không cần được cấp phép truy xuất trực tiếp ổ đĩa cứng cục bộ..NET Framework hỗ trợ không gian lưu trữ riêng, tức là cho phép bạn đọc và ghi vào hệthống file ảo của người dùng cụ thể mà CLR quản lý. Khi bạn tạo các file lưu trữ riêng,dữ liệu tự động được lưu vào một nơi duy nhất trong đường dẫn profile của người dùng(thông thường đường dẫn này có dạng C:\Documents and Settings\[username]\LocalSettings\Application Data\IsolatedStorage\ [guid_identifier]).Một lý do để sử dụng không gian lưu trữ riêng là trao cho một ứng dụng có-độ-tin cậy-một-phần có khả năng hạn chế khi lưu trữ dữ liệu (xem mục 13.1 để có thêm thông tin vềmã lệnh có-độ-tin-cậy-một-phần). Ví dụ, chính sách bảo mật CLR mặc định cấp cho mãlệnh cục bộ có FileIOPermission không hạn chế, tức là có quyền đọc và ghi bất kỳ filenào. Mã lệnh thực thi từ một máy chủ ở xa trên mạng Intranet cục bộ tự động được cấp ítquyền hơn—thiếu mất FileIOPermission, nhưng có IsolatedStoragePermission, tức là cókhả năng sử dụng không gian lưu trữ riêng (chính sách bảo mật cũng hạn chế dung lượngtối đa có thể được sử dụng trong không gian lưu trữ riêng). Một lý do khác để sử dụngkhông gian lưu trữ riêng là bảo vệ dữ liệu tốt hơn. Ví dụ, đối với dữ liệu trong không gianlưu trữ riêng của một người dùng, những người dùng khác không phải là nhà quản trị sẽkhông được quyền truy xuất.Đoạn mã dưới đây minh họa cách truy xuất không gian lưu trữ riêng:using System;using System.IO;using System.IO.IsolatedStorage;public class IsolatedStoreTest { private static void Main() { // Tạo không gian lưu trữ riêng cho người dùng hiện hành. IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForAssembly(); // Tạo một thư mục tại gốc của không gian lưu trữ riêng. store.CreateDirectory(MyFolder); // Tạo một file trong không gian lưu trữ riêng. Stream fs = new IsolatedStorageFileStream( MyFile.txt, FileMode.Create, store); StreamWriter w = new StreamWriter(fs); // Ghi file như bình thường. w.WriteLine(Test); w.Flush(); fs.Close(); Console.WriteLine(Current size: + store.CurrentSize.ToString()); Console.WriteLine(Scope: + store.Scope.ToString()); Console.WriteLine(Contained files include:); string [] files = store.GetFileNames(*.*); foreach (string file in files) { Console.WriteLine(file); } Console.ReadLine(); }}Theo mặc định, mỗi không gian lưu trữ riêng được tách biệt bởi người dùng và assembly.Điều này có nghĩa là khi cùng một người chạy cùng một ứng dụng, ứng dụng này sẽ truyxuất dữ liệu trong cùng không gian lưu trữ riêng. Tuy nhiên, bạn có thể tách biệt thêm bởimiền ứng dụng để nhiều thể hiện của cùng một ứng dụng nhận các không gian lưu trữriêng khác nhau, như ví dụ sau:// Truy xuất không gian lưu trữ riêng của người dùng// và assembly hiện tại (tương tự ví dụ trên).store = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);// Truy xuất không gian lưu trữ riêng của người dùng, assembly,// và miền ứng dụng hiện hành. Nói cách khác, dữ liệu này chỉ được// 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ể truyxuất các file này từ bất kỳ máy nào trong mạng LAN nếu roaming profile1[1][3] đã đượccấu hình (trong trường hợp này, phải thiết lập cờ IsolatedStorageFile.Roaming khi tạokhông gian lưu trữ). Bằng cách để .NET Framework và CLR 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. 1.2 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 ...
Tìm kiếm theo từ khóa liên quan:
công nghệ thông tin kĩ thuật lập trình ngôn ngữ lập trình ngôn ngữ C# C# File Thư mục và IO phần cuốiTài liệu liên quan:
-
52 trang 436 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 324 0 0 -
74 trang 305 0 0
-
96 trang 301 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 294 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 288 0 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 279 0 0 -
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 277 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 272 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 271 0 0