大问题:如何才能从路径中取出全文件名(用_splitpath取不出全文件名)?
我用如下方法:
lpszPathName="c:\\dos\\work\\book_2005_05_18.out.name.std003.dat";
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
_splitpath(lpszPathName, drive, dir, fname, ext );
CString a;
a.Format("%s",fname);这时a中是:book_2005_05_18.out啊!而不是全名:book_2005_05_18.out.name.std003.dat
如何才能从路径中取出文件全名呢?
多谢!
我用如下方法:
lpszPathName="c:\\dos\\work\\book_2005_05_18.out.name.std003.dat";
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
_splitpath(lpszPathName, drive, dir, fname, ext );
CString a;
a.Format("%s",fname);这时a中是:book_2005_05_18.out啊!而不是全名:book_2005_05_18.out.name.std003.dat
如何才能从路径中取出文件全名呢?
多谢!
解决方案 »
- CRichEdit控件中调用OleCreateFromFile所占用的内存如何释放
- CopyFile()可以将Access的数据复制到Excel中嘛
- 急~!MFC opengl 运行没反应
- 怎么根据字符串得到唯一的数字啊?
- 使用开源库,vs2010出来了很多错误,求解答
- 问个TRACE的问题,在线等。。。
- ▁▂▃▄▅在线结贴▅▄▃▂▁listctrl怎么sort
- 如何用RegQueryValue函数在注册表里建一个值,并在下次启动检测该是否为空?在线等待!
- 求救!!怎么能够访问一些受限制的站点
- vc调试的时候另一程序有弹出对话框会导致VC暂停运行,要等对话框关掉会才能接着运行,怎么办?
- 单步执行调试程序时,为什么有时会停下来,不能继续单步执行。
- 本人穷,求深入浅出mfc 简体中文第二版电子书!
GetModuleFileName(NULL,filename,256);
{
char* p = strrchr('\\'); if( p == 0 ) return NULL;//not found ,it's bad filepath name return ++p; // Skip pointer '\\' to next char.
}
应该是 strrchr( lpszFilePath, '\\')
{
char* p = strrchr(lpszFilePath, '\\'); if( p == 0 ) return NULL;//not found ,it's bad filepath name return ++p; // Skip pointer '\\' to next char.
}
返回的就是文件名啊
GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer ();
nPos = sPath.ReverseFind ('\\');
sPath = sPath.Right(sPath.GetLength() - (nPos+1));
你知道用_splitpath,不知道用_makepath啊。lpszPathName="c:\\dos\\work\\book_2005_05_18.out.name.std003.dat";
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
_splitpath(lpszPathName, drive, dir, fname, ext );
_makepath(lpszPathName,NULL,NULL,fname,ext);
CString a;
a.Format("%s",lpszPathName);
_makepath(lpszPathName,NULL,NULL,fname,ext);
第一个参数换别的,这里不能用lpszPathName。用你需要保存的地方。
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
char filename[MAX_PATH];
_splitpath(lpszPathName, drive, dir, fname, ext );
_makepath(filename,NULL,NULL,fname,ext);
CString a;
a.Format("%s",filename);
你试这个!我都试成功了!
我这正常,你的windows版本,如果要全名,将fname,ext和起来即可
strcat(fname, ext )