ổ đĩa
Ổ đĩa là một thiết bị vật lý được gắn vào máy tính để nó có thể lưu trữ thông tin. Đĩa logic, ổ đĩa logic hoặc đĩa ảo (viết tắt là VD hoặc vdisk) là một thiết bị ảo cung cấp một vùng dung lượng lưu trữ có thể sử dụng được trên một hoặc nhiều (các) ổ đĩa vật lý trong hệ thống máy tính. Ổ đĩa có thể là đĩa cứng, CD ROM, DVD ROM, ổ flash (USB), thẻ nhớ, v.v.
Một trong những thao tác chính mà bạn sẽ muốn thực hiện là lấy danh sách các ổ đĩa trên máy tính.
Chúng ta hãy xem xét một ví dụ đơn giản bằng cách tạo một ứng dụng dựa trên hộp thoại MFC mới.
Bước 1 – Kéo một nút từ hộp công cụ, thay đổi Chú thích của nó thành Nhận thông tin về ổ đĩa.
Bước 2 – Xóa chú thích của điều khiển tĩnh (dòng TODO) và thay đổi ID của nó thành IDC_STATIC_TEXT
Bước 3 – Nhấp chuột phải vào nút và chọn Thêm trình xử lý sự kiện
Bước 4 – Chọn loại thông báo BN_CLICKED và nhấp vào nút Thêm và Chỉnh sửa.
Bước 5 – Thêm biến giá trị m_strDrives cho điều khiển Văn bản tĩnh.
Để hỗ trợ các ổ đĩa trên máy tính, thư viện Win32 cung cấp hàm GetLogicalDrives() của Microsoft Window, hàm này sẽ lấy danh sách tất cả các ổ đĩa trên máy tính hiện tại.
Bước 6 – Khi đoạn mã trên được biên dịch và thực thi, bạn sẽ thấy đầu ra sau.
Bước 7 – Khi bạn nhấp vào nút, bạn có thể thấy tất cả các ổ đĩa trên máy tính của mình.
thư mục
Trong điện toán, một thư mục là một cấu trúc danh mục hệ thống tệp chứa các tham chiếu đến các tệp máy tính khác và có thể là các thư mục khác. Thư mục là một vị trí vật lý. Nó có thể xử lý các hoạt động không khả dụng trên một ổ đĩa.
Chúng ta hãy xem xét một ví dụ đơn giản bằng cách tạo một ứng dụng dựa trên hộp thoại MFC mới
Bước 1 – Kéo ba nút từ hộp công cụ. Thay đổi Chú thích của họ thành Tạo thư mục, Xóa thư mục và Di chuyển thư mục.
Bước 2 – Thay đổi ID của các nút này thành IDC_BUTTON_CREATE , IDC_BUTTON_DELETE và IDC_BUTTON_MOVE .
Bước 3 – Xóa dòng TODO.
Bước 4 – Thêm trình xử lý sự kiện cho mỗi nút.
Bước 5 – Để tạo một thư mục, bạn có thể gọi phương thức CreateDirectory() của thư viện Win32.
Bước 6 – Đây là triển khai trình xử lý sự kiện nút Tạo, trong đó chúng tôi sẽ tạo một thư mục và sau đó là hai thư mục con khác.
void CMFCDirectoriesDemoDlg::OnBnClickedButtonCreate() {
// TODO: Add your control notification handler code here
SECURITY_ATTRIBUTES saPermissions;
saPermissions.nLength = sizeof(SECURITY_ATTRIBUTES);
saPermissions.lpSecurityDescriptor = NULL;
saPermissions.bInheritHandle = TRUE;
if (CreateDirectory(L"D:\\MFCDirectoryDEMO", &saPermissions) == TRUE)
AfxMessageBox(L"The directory was created.");
CreateDirectory(L"D:\\MFCDirectoryDEMO\\Dir1", NULL);
CreateDirectory(L"D:\\MFCDirectoryDEMO\\Dir2", NULL);
}
Bước 7 – Để thoát khỏi một thư mục, bạn có thể gọi hàm RemoveDirectory() của thư viện Win32. Đây là cách triển khai trình xử lý sự kiện nút xóa.
void CMFCDirectoriesDemoDlg::OnBnClickedButtonDelete() {
// TODO: Add your control notification handler code here
if (RemoveDirectory(L"D:\\MFCDirectoryDEMO\\Dir1") == TRUE)
AfxMessageBox(L"The directory has been deleted");
}
Bước 8 – Nếu bạn muốn di chuyển một thư mục, bạn cũng có thể gọi hàm MoveFile() tương tự. Đây là cách triển khai trình xử lý sự kiện nút di chuyển, trong đó chúng tôi sẽ tạo thư mục mới đầu tiên và sau đó di chuyển Dir2 sang thư mục đó.
void CMFCDirectoriesDemoDlg::OnBnClickedButtonMove() {
// TODO: Add your control notification handler code here
CreateDirectory(L"D:\\MFCDirectory", NULL);
if (MoveFile(L"D:\\MFCDirectoryDEMO\\Dir1", L"D:\\MFCDirectory\\Dir1") == TRUE)
AfxMessageBox(L"The directory has been moved");
}
Bước 9 – Khi đoạn mã trên được biên dịch và thực thi, bạn sẽ thấy đầu ra sau.
Bước 10 – Khi bạn nhấp vào nút Tạo thư mục, nó sẽ tạo các thư mục này.
Bước 11 – Khi bạn nhấp vào nút Xóa Thư mục, thao tác này sẽ xóa Dir1.
Xử lý tệp
Hầu hết quá trình xử lý tệp trong ứng dụng MFC được thực hiện cùng với một lớp có tên là CArchive . Lớp CArchive đóng vai trò chuyển tiếp giữa ứng dụng và phương tiện được sử dụng để lưu trữ dữ liệu hoặc cung cấp dữ liệu. Nó cho phép bạn lưu một mạng các đối tượng phức tạp ở dạng nhị phân vĩnh viễn (thường là lưu trữ trên đĩa) vẫn tồn tại sau khi các đối tượng đó bị xóa.
Đây là danh sách các phương thức trong lớp CArchive –
Dưới đây là danh sách các phương thức trong lớp CDC. Dưới đây là danh sách các toán tử được sử dụng để lưu trữ và truy xuất dữ liệu
Sơ Không. | Tên & Mô tả |
1 | toán tử << Lưu trữ các đối tượng và các kiểu nguyên thủy vào kho lưu trữ. |
2 | nhà điều hành >> Tải các đối tượng và kiểu nguyên thủy từ kho lưu trữ. |
Chúng ta hãy xem xét một ví dụ đơn giản bằng cách tạo một ứng dụng dựa trên hộp thoại MFC mới.
Bước 1 – Kéo một điều khiển chỉnh sửa và hai nút như trong ảnh chụp nhanh sau đây.
Bước 2 – Thêm biến kiểm soát m_editCtrl và biến giá trị m_strEdit để kiểm soát chỉnh sửa.
Bước 3 – Thêm trình xử lý sự kiện nhấp chuột cho các nút Mở và Lưu.
Bước 4 – Đây là việc triển khai các trình xử lý sự kiện.
void CMFCFileProcessingDlg::OnBnClickedButtonOpen() {
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CFile file;
file.Open(L"ArchiveText.rpr", CFile::modeRead);
if(file) {
CArchive ar(&file, CArchive::load);
ar >> m_strEdit;
ar.Close();
file.Close();
}
UpdateData(FALSE);
}
void CMFCFileProcessingDlg::OnBnClickedButtonSave() {
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if (m_strEdit.GetLength() == 0) {
AfxMessageBox(L"You must enter the name of the text.");
return;
}
CFile file;
file.Open(L"ArchiveText.rpr", CFile::modeCreate | CFile::modeWrite);
CArchive ar(&file, CArchive::store);
ar << m_strEdit;
ar.Close();
file.Close();
}
Bước 5 – Khi đoạn mã trên được biên dịch và thực thi, bạn sẽ thấy đầu ra sau.
Bước 6 – Viết nội dung nào đó và nhấp vào Lưu. Nó sẽ lưu dữ liệu ở định dạng nhị phân.
Bước 7 – Xóa bài kiểm tra khỏi kiểm soát chỉnh sửa. Khi bạn nhấp vào Mở, hãy quan sát rằng cùng một văn bản được tải lại.