使用的API
Windows API | 功能 |
---|---|
CreateDirectory | 创建文件夹 |
GetCurrentDirectory | 获取当前文件夹 |
SetCurrentDirectory | 修改当前文件夹 |
GetModuleFileName | 获取模块路径 |
创建文件夹
使用CreateDirectory
创建文件夹
代码
void CMFCApplication3Dlg::OnBnClickedButton1()
{
LPTSTR szDirPath = TEXT("c:\\dog");
// 创建文件夹
if (!CreateDirectory(szDirPath, NULL)) {
MessageBox(TEXT("创建目录失败。"));
return;
}
MessageBox(TEXT("创建目录成功。"));
}
效果
可以看到C盘多了一个文件夹
获取当前目录
使用GetCurrentDirectory
获取当前文件夹
代码
void CMFCApplication3Dlg::OnBnClickedButton3()
{
TCHAR szCurrentDirectory[MAX_PATH];
DWORD dwCurDirPathLen;
// 获取当前目录
dwCurDirPathLen = GetCurrentDirectory(MAX_PATH, szCurrentDirectory);
if (dwCurDirPathLen == 0) {
MessageBox(TEXT("获取当前目录失败。"));
return;
}
MessageBox(szCurrentDirectory);
}
效果
修改当前目录
使用SetCurrentDirectory
修改当前目录
代码
void CMFCApplication3Dlg::OnBnClickedButton4()
{
// 修改当前目录
if (!SetCurrentDirectory(TEXT("c:\\"))) {
MessageBox(TEXT("修改当前目录失败。"));
return;
}
TCHAR szCurrentDirectory[MAX_PATH];
DWORD dwCurDirPathLen;
// 获取当前目录
dwCurDirPathLen = GetCurrentDirectory(MAX_PATH, szCurrentDirectory);
MessageBox(szCurrentDirectory);
}
效果
获取模块路径
使用GetModuleFileName
获取模块路径
获取主模块路径代码
void CMFCApplication3Dlg::OnBnClickedButton5()
{
TCHAR szModulePath[MAX_PATH];
// 获取主模块路径, 主模块指的这个exe文件
if (!GetModuleFileName(NULL, szModulePath, MAX_PATH)) {
MessageBox(TEXT("获取主模块路径失败。"));
return;
}
MessageBox(szModulePath);
}
效果
获取调用的dll模块路径代码
void CMFCApplication3Dlg::OnBnClickedButton6()
{
HMODULE hKernel32; // 模块句柄
TCHAR szModulePath[MAX_PATH];
// 加载dll
hKernel32 = LoadLibrary(TEXT("kernel32.dll"));
// 获取dll模块路径, 第一个参数是dll句柄
if (!GetModuleFileName(hKernel32, szModulePath, MAX_PATH)) {
MessageBox(TEXT("获取模块路径失败。"));
return;
}
MessageBox(szModulePath);
}