目录
1.获取指定文件夹下面所有文件路径
2.删除指定文件夹下面所有文件
3.MFC的CString 字符串操作
4.MFC的 Int类型 与 Htuple类型数据之间转换
5.上述提及的函数应用
6.MFC与Halcon联合编程,获取halcon异常
7.MFC获取指定路径下的文件夹路径
①、文件夹路径获取方式
②、打开文件——文件路径获取方式文章来源:https://www.toymoban.com/news/detail-600280.html
1.获取指定文件夹下面所有文件路径
//读取文件夹下的所有文件路径
void getFiles(CString path, vector<CString>& files)
{
CFileFind find;
BOOL IsFind = find.FindFile(path + _T("/*.*"));
while (IsFind)
{
IsFind = find.FindNextFile();
if (find.IsDots())
{
continue;
}
else
{
CString filename = _T("");
CString fullname = _T("");
filename = find.GetFileName();
fullname = path + filename;
files.push_back(fullname);
}
}
}
2.删除指定文件夹下面所有文件
//删除指定文件夹下面所有文件
void CDirectory::DeleteDirectory(const CString &strPath)
{
CFileFind tempFind;
TCHAR sTempFileFind[MAX_PATH] = { 0 };
wsprintf(sTempFileFind, _T("%s\\*.*"), strPath);
BOOL IsFinded = tempFind.FindFile(sTempFileFind);
while (IsFinded)
{
IsFinded = tempFind.FindNextFile();
if (!tempFind.IsDots())
{
TCHAR sFoundFileName[200] = { 0 };
_tcscpy(sFoundFileName, tempFind.GetFileName().GetBuffer(200));
if (tempFind.IsDirectory())
{
TCHAR sTempDir[200] = { 0 };
wsprintf(sTempDir, _T("%s\\%s"),strPath, sFoundFileName);
DeleteDirectory(sTempDir);
}
else
{
TCHAR sTempFileName[200] = { 0 };
wsprintf(sTempFileName, _T("%s\\%s"), strPath, sFoundFileName);
DeleteFile(sTempFileName);
}
}
}
tempFind.Close();
//若不想删除当前文件夹,则注释掉下面一句
if(!RemoveDirectory(strPath))
return false;
return true;
}
3.MFC的CString 字符串操作
CString strModelpath, strMax, strMin;
strModelpath.Format(("./printcheck_model/model-%d.shm"), hv_i[0].I());
strMax.Format(("./printcheck_model/ModelMax-%d.bmp"), hv_i[0].I());
strMin.Format(("./printcheck_model/ModelMin-%d.bmp"), hv_i[0].I());
4.MFC的 Int类型 与 Htuple类型数据之间转换
int k = (hv_Int[hv_Index]).I();
CString sr = Files[(hv_Int[hv_Index]).I()];
ReadImage(&ho_Image, HTuple(Files[(hv_Int[hv_Index]).I()]));
5.上述提及的函数应用
vector<CString> Files;
getFiles("D:/Desktop/文字缺损检测/产品0(√)/文字部分好品/", Files);
DeleteDirectory("./printcheck_model");
6.MFC与Halcon联合编程,获取halcon异常
try
{
ReadShapeModel(strModelpath.GetBuffer(), &hv_ModelID);
}
catch (const HException& H)
{
HString str = H.ErrorText();
string a = string(str.ToLocal8bit());
}
7.MFC获取指定路径下的文件夹路径
文件夹路径和文件路径是不一样的,前者可以仅选中某个文件夹,从而获得该文件夹的路径,但后者必须要打开某个指定的文件,如.jpg图像,这样才能获得文件路径。所以使用哪个程序,视你的需求而定。文章来源地址https://www.toymoban.com/news/detail-600280.html
①、文件夹路径获取方式
CString m_strFileOut = _T(""); //初始化适应Unicode
TCHAR szSelected[MAX_PATH];//用来存放文件夹路径
BROWSEINFO bi;
LPITEMIDLIST pidl;
bi.hwndOwner = this->m_hWnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = szSelected;
bi.lpszTitle = _T("选择输出文件路径");
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.lParam = NULL;
bi.iImage = NULL;
if((pidl = SHBrowseForFolder(&bi)) != NULL)
{
if(SUCCEEDED(SHGetPathFromIDList(pidl, szSelected))) //得到文件夹的全路径,不要的话,只得本文件夹名
{
m_strFileOut = szSelected; //获得文件夹的全路径
}
}
②、打开文件——文件路径获取方式
CString filePath;
CFileDialog dlg(TRUE, _T("*.bmp"), "", OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY, "image files (*.bmp; *.jpg) |*.bmp;*.jpg|All Files (*.*)|*.*||", NULL);
char title[] = { "Open model-Image" };
dlg.m_ofn.lpstrTitle = title;
if (dlg.DoModal() == IDOK)
{
filePath = dlg.GetPathName();//获取当前的路径
m_sModel_b.modelimg_path = filePath;
//读入图像
//手动选择1张图像创建形状模板
ReadImage(&ho_Image, HTuple(m_sModel_b.modelimg_path));
DispObj(ho_Image, m_lWindowHandle);
AfxMessageBox("模板参考图像读取完成!");
}
到了这里,关于MFC的文件操作——获取指定文件夹下面所有文件路径和删除指定文件夹下面所有文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!