GetFileName()有效最大文件长度不是1085

来源:互联网 发布:java无参方法构造 编辑:程序博客网 时间:2024/05/01 09:52

算法写完后,找了好多测试数据,测试过程中出现了下面问题:

用GetFileName()方法时提取的文件名不全,导致最终的根目录确定错误:

CFileDialog dlg(
TRUE, _T("*.bmp"), NULL,
OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY,
_T("image files (*.bmp; *.jpg) |*.bmp; *.jpg | All Files (*.*) |*.*||"), NULL
);                                        
dlg.m_ofn.lpstrTitle = _T("Open Image");    
if(dlg.DoModal() != IDOK)               
return;

CString FullPath = dlg.GetPathName();
CString FileName = dlg.GetFileName();

const char *fn = FileName .GetBuffer(sizeof(FileName ));

AfxMessageBox(fn);

原文件名:analyse_Img_curBmp_2012_04_05_16_44_59_000531_224131500_224132324.bmp

结果输出:analyse_Img_curBmp_2012_04_05_16_44_59_000531_224131500_2241323


针对上述问题,有两种解决方案:

1、文件名统一的情况下,限制文件名长度;

2、可以写一个批处理文件对像上述文件名过长且无意义的重命名;

0 0