hệ điều hành nguyễn văn hiệp bài 9 2 xây dựng ứng dụng duyệt xem hệ thống filesinhvienzone com

6 68 0
hệ điều hành nguyễn văn hiệp bài 9 2 xây dựng ứng dụng duyệt xem hệ thống filesinhvienzone com

Đang tải... (xem toàn văn)

Thông tin tài liệu

Trang MÔN : 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 I Mục tiêu : ƒ Giúp SV làm quen với việc sử dụng class DriveInfo, Directory NET ₫ể lập trình duyệt truy xuất danh sách ổ ₫ĩa có máy tính duyệt ₫ọc nội dung thư mục hệ thống file II Nội dung : ƒ Xây dựng ứng dụng Dialog Based cho phép người dùng duyệt xem hệ thống file máy ƒ Dịch chạy chương trình ƒ Debug chương trình ₫ể tìm lỗi có III Chuẩn ₫ầu : ƒ Sinh viên nắm vững lập trình thành thạo ₫oạn code sử dụng class DriveInfo, Directory NET ₫ể lập trình duyệt truy xuất danh sách ổ ₫ĩa có máy tính duyệt ₫ọc nội dung thư mục hệ thống file IV Phân tích : ƒ Sau phân tích chức chương trình, ta thấy chương trình form giao diện trực quan, chứa Combobox giúp duyệt chọn ổ ₫ĩa muốn xem nội dung, TreeView ₫ể hiển thị phân cấp thư mục ổ ₫ĩa ₫ược chọn, DataGridView ₫ể hiển thị danh sách file thư mục ₫ang chọn thông tin thiết yếu file V Qui trình : Chạy VS Net, chọn menu File.New.Project ₫ể hiển thị cửa sổ New Project Mở rộng mục Visual C# TreeView "Project Types", chọn mục Window, chọn icon "Windows Application" listbox "Templates" bên phải, thiết lập thư mục chứa Project listbox "Location", nhập tên Project vào textbox "Name:" (thí dụ FSViewer), click button OK ₫ể tạo Project theo thông số ₫ã khai báo Form ₫ầu tiên ứng dụng ₫ã hiển thị cửa sổ thiết kế, việc thiết kế form q trình lặp thao tác tạo mới/xóa/hiệu chỉnh thuộc tính/tạo hàm xử lý kiện cho ₫ối tượng cần dùng form Chọn Form ₫ể hiển thị cửa sổ thuộc tính nó, tìm mục Font Form thay ₫ổi thành font cần dùng ₫ể hiển thị nội dung văn form Tìm mục Text hiệu chỉnh nội dung thành "Trình duyệt xem hệ thống file" Nếu cửa sổ ToolBox chưa hiển thị chi tiết, chọn menu View.Toolbox ₫ể hiển thị (Auto Hide) nằm góc (thường nằm bên trái hình) Click chuột vào button phải cửa sổ ToolBox ₫ể chuyển chế ₫ộ hiển thị thường trực Duyệt tìm phần tử Label (trong nhóm Common Controls), chọn nó, dời chuột góc trái form vẽ với kích thước mong muốn Xem cửa sổ thuộc tính SinhVienZone.com https://fb.com/sinhvienzonevn Trang Label vừa vẽ (thường góc phải hình), duyệt tìm hiệu chỉnh thuộc tính Text = "Chọn ổ ₫ĩa :" Duyệt tìm phần tử ComboBox (trong nhóm Common Controls), chọn nó, dời chuột bên phải Label vừa vẽ vẽ với kích thước mong muốn Xem cửa sổ thuộc tính ComboBox vừa vẽ (thường góc phải hình), duyệt tìm hiệu chỉnh thuộc tính (Name) = cbDrives Duyệt tìm phần tử TreeView (trong nhóm Common Controls), chọn nó, dời chuột bên Label ₫ược vẽ bước vẽ với kích thước mong muốn (chiếm khoảng 1/3 bề ngang Form hết phần lại bên Form Xem cửa sổ thuộc tính TreeView vừa vẽ (thường góc phải hình), duyệt tìm hiệu chỉnh thuộc tính (Name) = tvFolders Duyệt tìm phần tử DataGridView (trong nhóm Data), chọn nó, dời chuột bên phải TreeView vừa vẽ vẽ với kích thước mong muốn (chiếm phần lại bên phải hết phần lại bên Form Xem cửa sổ thuộc tính DataGridView vừa vẽ (thường góc phải hình), duyệt tìm hiệu chỉnh thuộc tính (Name) = dgvFiles Sau thiết kế xong, Form có dạng sau : 10 Dời chuột ComboBox cbDrives chọn nó, cửa sổ thuộc tính hiển thị, click icon ₫ể hiển thị danh sách kiện ComboBox, duyệt tìm kiện SelectedIndexChanged, ấn kép chuột vào comboBox bên phải kiện SelectedIndexChanged ₫ể máy tạo tự ₫ộng hàm xử lý cho kiện Cửa sổ mã nguồn hiển thị khung sườn hàm vừa ₫ược tạo với thân rỗng, viết thân cho hàm 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 hành TreeView chứa thư mục tvFolders.Nodes.Clear(); SinhVienZone.com https://fb.com/sinhvienzonevn Trang //tạo ₫ối tượng TreeNode miêu tả thư mục gốc TreeNode FdNode = new TreeNode(); FdNode.Text = sdrv; //tên thư mục gốc //add ₫ối tượng TreeNode miêu tả thư mục gốc vào tvFolders.Nodes.Add(FdNode); //triển khai nội dung thư mục gốc ₫ể chứa thư mục hành Populate(FdNode, sdrv); //mở rộng nội dung nút miêu tả thư mục gốc FdNode.Expand(); //hiển thị lại thư mục theo nội dung vừa thiết lập tvFolders.Refresh(); } //hàm triển khai nội dung nút thư mục xác ₫ịnh private void Populate(TreeNode FdNode, String sdir) { //lấy danh sách thư mục thư mục sdir string[] sdlistw = Directory.GetDirectories(sdir); TreeNode ChildNode; //xóa tất nội dung cũ nút thư mục sdir FdNode.Nodes.Clear(); //duyệt thêm nút thư mục vào cho nút thư mục sdir foreach (string subdir in sdlistw) { string[] lstStr = subdir.Split('\\'); ChildNode = new TreeNode(); ChildNode.Text = lstStr[lstStr.Length - 1]; //nút ChildNode.Nodes.Add(new TreeNode()); FdNode.Nodes.Add(ChildNode); } }  10 Dời chuột phía 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 TreeView tvFiles chọn nó, cửa sổ thuộc tính hiển thị, click icon ₫ể hiển thị danh sách kiện TreeView, duyệt tìm kiện NodeMouseClick, ấn kép chuột vào comboBox bên phải kiện NodeMouseClick ₫ể máy tạo tự ₫ộng hàm xử lý cho kiện Cửa sổ mã nguồn hiển thị khung sườn hàm vừa ₫ược tạo với thân rỗng, viết thân cho hàm sau : private void tvFolders_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { if (e.X >= e.Node.Bounds.Left) { //chọn folder ==> hiển thị file bên lên DataGridView DisplayFiles(getDir(e.Node)); } else //mở rộng/thu gọn nội dung nút thư mục tương ứng tvFolders_NodeMouseDoubleClick(sender, e); } SinhVienZone.com https://fb.com/sinhvienzonevn Trang //hàm hiển thị file bên thư ₫ược chọn lên DataGridView private void DisplayFiles(String sdir) { //xóa danh sách file DataGridView dgvFiles.Rows.Clear(); //lấy danh sách file thư mục sdir string[] flist = Directory.GetFiles(sdir); String[] sbuf = new String[3]; String[] buf; //lặp lấy thông tin file thư mục hiển thị 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 phía 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 TreeView tvFiles chọn nó, cửa sổ thuộc tính hiển thị, click icon ₫ể hiển thị danh sách kiện TreeView, duyệt tìm kiện NodeMouseDoubleClick, ấn kép chuột vào comboBox bên phải kiện NodeMouseDoubleClick ₫ể máy tạo tự ₫ộng hàm xử lý cho kiện Cửa sổ mã nguồn hiển thị khung sườn hàm vừa ₫ược tạo với thân rỗng, viết thân cho hàm 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 nút 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 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 có cha node = node.Parent; if (node.Parent != null) //nút có cha kq = node.Text + "\\" + kq; else kq = node.Text + kq; } SinhVienZone.com https://fb.com/sinhvienzonevn Trang return kq; }    12 Dời chuột phía 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, chọn Form ₫ể hiển thị cửa sổ thuộc tính nó, click icon ₫ể hiển thị danh sách kiện Form, duyệt tìm kiện SizeChanged, ấn kép chuột vào comboBox bên phải kiện SizeChanged ₫ể máy tạo tự ₫ộng hàm xử lý cho kiện Cửa sổ mã nguồn hiển thị khung sườn hàm vừa ₫ược tạo với thân rỗng, viết thân cho hàm sau : //hàm thay ₫ổi kích thước phần tử giao diện Form theo kích thước private void Form1_SizeChanged(object sender, EventArgs e) { int cx = ClientSize.Width; int cy = ClientSize.Height; int top = tvFolders.Top; int left = tvFolders.Left; tvFolders.Size = new Size(cx/3-left, cy-8-top); //TreeView chiếm 1/3 chiều ngang dgvFiles.Location = new Point(cx/3,top); dgvFiles.Size = new Size(2*cx/3-8, cy-8-top); //DataGridView chiếm 2/3 lại } 13 Dời cursor ₫ầu file mã nguồn, thêm lệnh using sau ₫ể dùng namespace tương ứng : using System.IO; 14 Tìm hàm khởi tạo form hiệu chỉnh nội dung sau ₫ể thiết lập thơng tin ban ₫ầu chương trình : public Form1() { InitializeComponent(); //thiết lập listbox ₫ể chứa tên ổ ₫ĩa DriveInfo[] allDrives = DriveInfo.GetDrives(); cbDrives.Items.Clear(); foreach (DriveInfo d in allDrives) { cbDrives.Items.Add(d.Name); } //chọn mặc ₫ịnh ổ ₫ầu tiên cbDrives.SelectedIndex = 0; //thiết lập DataGridView có cột : tên file, kích thước, ngày cập nhật lần cuối dgvFiles.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; dgvFiles.CellBorderStyle = DataGridViewCellBorderStyle.None; dgvFiles.GridColor = Color.Black; dgvFiles.ColumnCount = 3; dgvFiles.Columns[0].Name = "Tên file"; dgvFiles.Columns[1].Name = "Kích thước"; SinhVienZone.com https://fb.com/sinhvienzonevn Trang 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 chạy thử ứng dụng Khi Form chương trình hiển thị, click chuột vào button phóng to/thu nhỏ, form ₫ược phóng to ₫ể chiếm hết hình TreeView+DataGridView bên ₫ược phóng to theo, lúc thấy nội dung phân cấp danh sách file dễ dàng 16 Hãy thao tác duyệt chọn xem nội dung số thư mục theo yêu cầu ₫ể xem chương trinh hoạt ₫ộng tốt không SinhVienZone.com https://fb.com/sinhvienzonevn ... hình), duyệt tìm hiệu chỉnh thuộc tính Text = "Chọn ổ ₫ĩa :" Duyệt tìm phần tử ComboBox (trong nhóm Common Controls), chọn nó, dời chuột bên phải Label vừa vẽ vẽ với kích thước mong muốn Xem cửa... danh sách file dễ dàng 16 Hãy thao tác duyệt chọn xem nội dung số thư mục theo yêu cầu ₫ể xem chương trinh hoạt ₫ộng tốt không SinhVienZone .com https://fb .com/ sinhvienzonevn ... mong muốn Xem cửa sổ thuộc tính ComboBox vừa vẽ (thường góc phải hình), duyệt tìm hiệu chỉnh thuộc tính (Name) = cbDrives Duyệt tìm phần tử TreeView (trong nhóm Common Controls), chọn nó, dời

Ngày đăng: 28/01/2020, 22:29

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan