mfc_file_manage_3 - 8BitsCoding/RobotMentor GitHub Wiki


void CMFCApplication1Dlg::OnBnClickedRCreateDirBtn()
{
	inputNameDlg ins_dlg;
	if (IDOK == ins_dlg.DoModal()) {
		CString path;
		GetDlgItemText(IDC_R_PATH_EDIT, path);
		CreateDirectory(path+ins_dlg.GetName(), NULL);

		DirToList(&m_right_list, path);
	}
}
void CMFCApplication1Dlg::OnBnClickedLToRCopyBtn()
{
	int index = m_left_list.GetCurSel();
	if (index != LB_ERR) {
		CString name, src_path, dest_path;
		m_left_list.GetText(index, name);
		if (name[0] == '[') {
			// 디렉터리는 복사하지 않음
			MessageBox(L"디렉토리는 복사할 수 없습니다.", L"복사 실패", MB_ICONSTOP|MB_OK);
		}
		else {
			GetDlgItemText(IDC_L_PATH_EDIT, src_path);
			GetDlgItemText(IDC_R_PATH_EDIT, dest_path);
			CopyFile(src_path +L"\\" + name, dest_path + L"\\" + name, FALSE);
			// 마지막 FALSE는 덮어쓰겠는지? FALSE일경우 덮어쓴다.
			DirToList(&m_right_list, dest_path);
		}
	}
}
void CMFCApplication1Dlg::OnBnClickedOpenDirBtn()
{
	CString path;
	GetDlgItemText(IDC_R_PATH_EDIT, path);
	ShellExecute(NULL, L"open", L"explorer.exe", path, path, SW_SHOW);
}


void CMFCApplication1Dlg::OnBnClickedRDleBtn()
{
	int index = m_right_list.GetCurSel();
	if (index != LB_ERR) {
		CString name;
		m_right_list.GetText(index, name);
		if (name[0] == '[') {
			// 디렉터리 삭제 안함
			MessageBox(L"디렉토리는 삭제할 수 없습니다.", L"삭제 실패", MB_ICONSTOP | MB_OK);
		}
		else {
			if (IDOK == MessageBox(name, L"아래의 파일을 삭제하시겠습니까?", MB_ICONQUESTION | MB_OKCANCEL))
			{
				CString path;
				GetDlgItemText(IDC_R_PATH_EDIT, path);
				DeleteFile(path + name);
				DirToList(&m_right_list, path);
			}
		}
	}
}