Thực hành Hệ điều hành - Bài thực hành số 9.2: Xây dựng ứng dụng duyệt xem hệ thống file

Sau khi phân tích chức năng của chương trình, ta thấy chương trình là 1 form
giao diện trực quan, nó chứa 1 Combobox giúp duyệt chọn ổ ₫ĩa muốn xem nội
dung, 1 TreeView ₫ể hiển thị cây phân cấp các thư mục trong ổ ₫ĩa ₫ược chọn, 1
DataGridView ₫ể hiển thị danh sách các file trong thư mục ₫ang chọn và các
thông tin thiết yếu của từng file. 

pdf 6 trang xuanthi 30/12/2022 820
Bạn đang xem tài liệu "Thực hành Hệ điều hành - Bài thực hành số 9.2: Xây dựng ứng dụng duyệt xem hệ thống file", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfthuc_hanh_he_dieu_hanh_bai_thuc_hanh_so_9_2_xay_dung_ung_dun.pdf

Nội dung text: Thực hành Hệ điều hành - Bài thực hành số 9.2: Xây dựng ứng dụng duyệt xem hệ thống file

  1. Trang 2 Label vừa vẽ (thường ở góc dưới phải màn hình), duyệt tìm và hiệu chỉnh thuộc tính Text = "Chọn ổ ₫ĩa :". 7. Duyệt tìm phần tử ComboBox (trong nhóm Common Controls), chọn nó, dời chuột về ngay bên phải Label vừa vẽ và vẽ nó với kích thước mong muốn. Xem cửa sổ thuộc tính của ComboBox vừa vẽ (thường ở góc dưới phải màn hình), duyệt tìm và hiệu chỉnh thuộc tính (Name) = cbDrives. 8. Duyệt tìm phần tử TreeView (trong nhóm Common Controls), chọn nó, dời chuột về ngay bên dưới Label ₫ược vẽ ở bước 6 và vẽ nó với kích thước mong muốn (chiếm khoảng 1/3 bề ngang của Form và hết phần còn lại bên dưới Form. Xem cửa sổ thuộc tính của TreeView vừa vẽ (thường ở góc dưới phải màn hình), duyệt tìm và hiệu chỉnh thuộc tính (Name) = tvFolders. 9. Duyệt tìm phần tử DataGridView (trong nhóm Data), chọn nó, dời chuột về ngay bên phải TreeView vừa vẽ và vẽ nó với kích thước mong muốn (chiếm phần còn lại bên phải và hết phần còn lại bên dưới Form. Xem cửa sổ thuộc tính của DataGridView vừa vẽ (thường ở góc dưới phải màn hình), duyệt tìm và hiệu chỉnh thuộc tính (Name) = dgvFiles. Sau khi thiết kế xong, Form có dạng sau : 10. Dời chuột về ComboBox cbDrives và chọn nó, cửa sổ thuộc tính của nó sẽ hiển thị, click icon ₫ể hiển thị danh sách các sự kiện của ComboBox, duyệt tìm sự kiện SelectedIndexChanged, ấn kép chuột vào comboBox bên phải sự kiện SelectedIndexChanged ₫ể máy tạo tự ₫ộng hàm xử lý cho sự kiện này. Cửa sổ mã nguồn sẽ hiển thị khung sườn của hàm vừa ₫ược tạo với thân rỗng, viết thân cho hàm này như sau : private void cbDrives_SelectedIndexChanged(object sender, EventArgs e) { //lấy chuỗi miêu tả ổ ₫ĩa ₫ược chọn String sdrv = cbDrives.SelectedItem.ToString(); //xóa nội dung hiện hành của TreeView chứa cây thư mục tvFolders.Nodes.Clear();
  2. Trang 4 //hàm hiển thị các file bên trong thư hiện ₫ược chọn lên DataGridView private void DisplayFiles(String sdir) { //xóa danh sách file của DataGridView dgvFiles.Rows.Clear(); //lấy danh sách các file trong thư mục sdir string[] flist = Directory.GetFiles(sdir); String[] sbuf = new String[3]; String[] buf; //lặp lấy thông tin từng file trong thư mục và hiển thị nó lên DataGridView foreach (string fname in flist) { FileInfo fi = new FileInfo(fname); sbuf[1] = fi.Length.ToString(); sbuf[2] = fi.LastWriteTime.ToString(); buf = fname.Split('\\'); sbuf[0] = buf[buf.Length - 1]; dgvFiles.Rows.Add(sbuf); } } 11. Dời chuột về phía trên cửa sổ làm việc, chọn tag "Form1.cs [Desgin]" ₫ể hiển thị lại cửa sổ thiết kế form, dời chuột về TreeView tvFiles và chọn nó, cửa sổ thuộc tính của nó sẽ hiển thị, click icon ₫ể hiển thị danh sách các sự kiện của TreeView, duyệt tìm sự kiện NodeMouseDoubleClick, ấn kép chuột vào comboBox bên phải sự kiện NodeMouseDoubleClick ₫ể máy tạo tự ₫ộng hàm xử lý cho sự kiện này. Cửa sổ mã nguồn sẽ hiển thị khung sườn của hàm vừa ₫ược tạo với thân rỗng, viết thân cho hàm này như sau : private void tvFolders_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { TreeNode node = e.Node; //chuyển trạng thái mở rộng/thu gọn của nút hiện hành if (node.NextNode !=null && node.IsExpanded==false) node.Collapse(); else { String sdir = getDir(node); Populate(node, sdir); } } //hàm tạo chuỗi miêu tả ₫ường dẫn tuyệt ₫ối của thư mục tương ứng với nút node private String getDir(TreeNode node) { String kq = node.Text; while (node.Parent != null) {//nút này có cha node = node.Parent; if (node.Parent != null) //nút này có cha kq = node.Text + "\\" + kq; else kq = node.Text + kq; }
  3. Trang 6 dgvFiles.Columns[2].Name = "Cập nhật lần cuối lúc"; dgvFiles.Font = new Font("Tahoma", 10f); dgvFiles.Name = "dgvFiles"; dgvFiles.AutoResizeColumns(); dgvFiles.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; dgvFiles.MultiSelect = true; dgvFiles.AllowUserToResizeColumns = true; } 15. Chọn menu Debug.Start Debugging ₫ể dịch và chạy thử ứng dụng. Khi Form chương trình hiển thị, hãy click chuột vào button phóng to/thu nhỏ, form sẽ ₫ược phóng to ₫ể chiếm hết màn hình và TreeView+DataGridView bên trong nó cũng ₫ược phóng to theo, lúc này sẽ thấy nội dung cây phân cấp và danh sách các file dễ dàng hơn. 16. Hãy thao tác duyệt chọn và xem nội dung 1 số thư mục theo yêu cầu ₫ể xem chương trinh hoạt ₫ộng tốt không.