如何用mfc访问一个文件夹,并存储文件夹内所有文件的路径

如何用mfc访问一个文件夹,并存储文件夹内所有文件的路径,第1张

CFileFind finder

if(finder.IsDirectory() &&!finder.IsDots())

{

// 是子文件夹,递归调用本函数

}

else

{

finder.GetFilePath()// 获取文洞型件亏缺的完整路径

finder.GetFileName()// 获纳空猜取文件名,包括扩展名

}

CFileDialog dlg

if(IDCANCEL == dlg.DoModal()){

return

}

CString filePath = dlg.GetFilePathName()

主要有两个难点:

1、如何选择文件;

2、选择好文件之后,如果复制;

1st、关于文件选择,可参考下面这段代码:

CString CDcPackerDlg::BootOpenDialog() //返回选择的文件名称

{

CString strFile = _T("")

CFileDialogdlgFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, _T("Describe Files (*.cfg)|*.cfg|All Files (*.*)|*.*||"), NULL)

if (dlgFile.DoModal())

{

strFile = dlgFile.GetPathName()

}

return strFile

}

//加载文件按钮

void CDcPackerDlg::OnBnClickedSelectdec()

{

// TODO: Add your control notification handler code here

m_strDescPath = "" //类的成员变量

//"打开友饥锋文件"对话框,选择文件,返回其路径

m_strDescPath = BootOpenDialog()

}

2nd、文件复制好晌:

2.1 获得程序目录

CString strPath = "", strDir = ""

char filepath[MAX_PATH]

GetModuleFileName(NULL, filepath, MAX_PATH)

strDir.Format("%s", filepath)

strPath = strDir.Left(strDir.ReverseFind('\\'))

2.2 复制文件

在MFC下可以用CopyFile()函肢虚数,定义如下:

BOOL CopyFile(

LPCTSTR lpExistingFileName, //原文件地址,包括文件名

LPCTSTR lpNewFileName, ////目的文件地址,包括文件名

BOOL bFailIfExists //如果目的文件存在的 *** 作

)

3rd、自己把上面给的代码组装一下,就可以满足你的要求了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12202831.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存