MFC 如何从CString中获取文件目录

MFC 如何从CString中获取文件目录,第1张

从后往前查找最后一个路径分隔符的索引 ,然后截取字符串

CString str = _T("C:\\WINDOWS\\SYSTEM32\\123EXE");

int nPos = strReverseFind (_T('\\'));

str = strLeft(nPos+1);

例如:CBitmap bmp;

bmpLoadBitmap(IDB_PAGE2);

GetDlgItem(IDC_PIC)->SetBitmap((HBITMAP)bmp); //IDC_PIC是框ID

bmpDetach();

InvalidateRect( rcPic ); // 重绘Pic控件区域

再加个循环就可以了。。。

补充:微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。

已经获取了CString类型的文件路径,一般推荐使用CFile或者CStdioFile进行文件 *** 作。

fread也是可以的,打开的文件名参数使用cstringGetBuffer(0)就可以了,不过注意工程最好不要是UNICODE模式,这种模式下fread会有一些麻烦。

'm_File' : undeclared identifier ,没有这个变量,要先定义的类型的;

m_File 在类 h 文件里面定义, CString m_File;

或者直接在函数里面定义也可以

你好 亲

修改后的应该是这样的

dlgFilem_ofnFlags |= OFN_ALLOWMULTISELECT | OFN_ENABLESIZING | OFN_HIDEREADONLY;

dlgFilem_ofnlpstrFilter = _T("Bin Files(bin)\0bin\0All Files()\0\0\0");

const int nMaxFiles = 1000;

const int nMaxPathBuffer = (nMaxFiles (MAX_PATH + 1)) + 1;

LPSTR pc = (LPSTR)malloc(nMaxPathBuffer sizeof(WCHAR));

if( pc )

{

dlgFileGetOFN()lpstrFile = pc;

dlgFileGetOFN()lpstrFile[0] = NULL;

dlgFilem_ofnnMaxFile = nMaxPathBuffer;

if (dlgFileDoModal() != IDOK)

{

return;

}

UpdateData(TRUE);

POSITION pos = dlgFileGetStartPosition();//获取第一个文件位置

UpdateData(FALSE);

while (pos)

{

m_FilePathName[i] = dlgFileGetNextPathName(pos);

if(i == 0)

{

m_TreeMuti1DeleteAllItems();

/TiXmlDocument doc1 = new TiXmlDocument("D:\\sumAbin");/

TiXmlDocument doc1 = new TiXmlDocument(m_FilePathName[0]);

/CString str;strFormat(_T("%s"),m_FilePathName[0]);AfxMessageBox(str);/

if (!doc1->LoadFile())

{

/CString str;strFormat(_T("%s"),m_FilePathName[0]);AfxMessageBox(str);/

return;

}

TiXmlElement root1=doc1->RootElement();

TiXmlElement pNode1=root1;

CrcXmlMuti1(pNode1,TVI_ROOT);

如果你写好了把开文件夹的代码,再加上这几句就OK了

void CMainFrame::OnFileOpen()

{

// TODO: Add your command handler code here

char szSelected[MAX_PATH];

LPITEMIDLIST pidl;

SUCCEEDED(SHGetPathFromIDList(pidl, szSelected));

}

CFileDialog::GetFolderPath ,这个是顺着CFileDialog思路的。

GetCurrentDirectory,可以获取当前的路径。如果你打开txt用的只是文件名称,没有路径的话,那使用的路径就是GetCurrentDirectory获取的路径。

以上就是关于MFC 如何从CString中获取文件目录全部的内容,包括:MFC 如何从CString中获取文件目录、MFC,如何获取文件图标并在Picture控件中显示、在mfc中获取的文件路径是cstring型,想用fread和fopen这样的函数读取文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/web/9557354.html

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

发表评论

登录后才能评论

评论列表(0条)

保存