Win32 文件(2)
2011-03-28 21:46 Clingingboy 阅读(643) 评论(0) 编辑 收藏 举报
8.6 如何复制文件
CopyFile函数
//复制文件,如果目标文件存在将不覆盖。
if (::CopyFile(strSourcePathName, strTargetPathName, TRUE))
{
AfxMessageBox(_T("复制文件成功。"));
}
else
{
AfxMessageBox(_T("复制文件失败。"));
}
8.7 如何移动文件
MoveFile函数
//移动文件
if (::MoveFile(strSourcePathName, strTargetPathName))
{
AfxMessageBox(_T("移动文件成功。"));
}
else
{
AfxMessageBox(_T("移动文件失败。"));
}
8.8 如何删除文件
DeleteFile函数
//删除文件
if(::DeleteFile(strPathName))
{
AfxMessageBox(_T("删除文件成功。"));
}
else
{
AfxMessageBox(_T("删除文件失败。"));
}
8.9 如何重命名文件
使用CFile::Rename静态方法
//重命名文件
CFile::Rename(strOldPathName, strNewPathName);
AfxMessageBox(_T("重命名文件成功。"));
8.10 如何查找文件
用CFileFind 相关操作
void CDemoDlg::Find(LPCTSTR lpszFileName)
{
CString strWildcard = lpszFileName;
strWildcard += _T("\\*.*");
CFileFind finder;
BOOL bFind = FALSE;
//查找文件
bFind = finder.FindFile(strWildcard);
while (bFind)
{
//查找下一个文件
bFind = finder.FindNextFile();
//判断找到文件的是否包含"."或".."
if (finder.IsDots())
{
continue;
}
//获得找到文件的名称
if (finder.IsDirectory())
{
//找到文件的路径
CString strFilePath = finder.GetFilePath();
//递归查找文件
Find(strFilePath);
}
//获得找到文件的名称
CString strFileName = finder.GetFileName();
CListBox* pListBox = (CListBox*)GetDlgItem(IDC_FILELIST);
pListBox->AddString(strFileName);
}
//结束查找
finder.Close();
}
8.11 如何使用Shell操作文件
8.12 如何获得应用程序的目录
GetModuleFileName函数
void CDemoDlg::OnGetAppDir()
{
TCHAR szFileName[MAX_PATH];
//获得应用程序的文件全路径和文件名
if (::GetModuleFileName(NULL, szFileName, MAX_PATH))
{
//去掉文件名
CString strFileName = szFileName;
int nIndex = strFileName.ReverseFind('\\');
CString strDirectory = strFileName.Left(nIndex);
CString strText = _T("");
strText.Format(_T("应用程序目录:\n%s"), strDirectory);
AfxMessageBox(strText);
}
}
8.13 如何获得或设置进程的当前目录
GetCurrentDirectory和SetCurrentDirectory方法
void CDemoDlg::OnGetCurDir()
{
TCHAR szDirectory[MAX_PATH];
//获得进程的当前目录
if (::GetCurrentDirectory(MAX_PATH, szDirectory))
{
CString strText = _T("");
strText.Format(_T("进程的当前目录:\n%s"), szDirectory);
AfxMessageBox(strText);
}
}
void CDemoDlg::OnSetCurDir()
{
CString strDirectory = _T("C:\\");
//设置进程的当前目录
if (::SetCurrentDirectory(strDirectory))
{
CString strText = _T("");
strText.Format(_T("进程的当前目录:\n%s"), strDirectory);
AfxMessageBox(strText);
}
}
8.14 如何获得Windows目录和System目录
GetWindowsDirectory和GetSystemDirectory函数,即C盘的Windows目录及Windows的System32子目录
void CDemoDlg::OnGetWinDir()
{
TCHAR szDirectory[MAX_PATH];
//获得Windows目录
if (::GetWindowsDirectory(szDirectory, MAX_PATH) > 0)
{
CString strText = _T("");
strText.Format(_T("Windows目录:\n%s"), szDirectory);
AfxMessageBox(strText);
}
}
void CDemoDlg::OnGetSysDir()
{
TCHAR szDirectory[MAX_PATH];
//获得System目录
if (::GetSystemDirectory(szDirectory, MAX_PATH) > 0)
{
CString strText = _T("");
strText.Format(_T("System目录:\n%s"), szDirectory);
AfxMessageBox(strText);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现