CFileDialog获取文件名长度的问题(总结前辈)
来源:互联网 发布:中国铁矿石进口数据 编辑:程序博客网 时间:2024/06/05 15:23
CFileDialog dlg(TRUE,NULL,NULL, OFN_FILEMUSTEXIST,strFilter);///TRUE为OPEN对话框,FALSE为SAVE AS对话框
if( dlg.DoModal() != IDOK) return;
FilePathName=dlg.GetPathName();
CString FileName = dlg.GetFileName();
得到的全路径GetPathName是正确的,但是FileName却少了后面几个字符,查了一下网上的信息,看到了别人也有类似的问题。
这个是我测试的文件名,其中用GetFileName获得的结果是少了后面的hd两个字符
“575636_GXJ_512x512x20_0.39x0.39x4.5_200801032__normalizedHead.mhd”
作者原文:
GetFilePath获取的全路径名正确,但是当遇到长文件名时,GetFileName获取不正确,找了半天才知道,原来当遇到长文件名时,用GetFileName却只能获取前63个字符(第64个位空终止符),所以若输入的文件名可能超过64个字符时,千万不要用GetFileName,可用GetFilePath获取全路径,然后从全路径截取文件名。或者干脆限制文件名长度。
CFileDialog dlg(TRUE,NULL,NULL,0,"All Files (*.*)|*.*|",this);
CString strPathName,strFileName;
if(dlg.DoModal()==IDOK)
{
strPathName=dlg.GetPathName();
}
strFileName = strPathName.Right(strPathName.GetLength()-strPathName.ReverseFind('\\')-1);
MessageBox(strFileName);
原始地址:http://blog.csdn.net/harry330/archive/2009/07/01/4313444.aspx
- CFileDialog获取文件名长度的问题(总结前辈)
- CFileDialog获取文件名长度
- CFileDialog的默认文件名问题
- CFileDialog保存时带有默认的文件名
- 前辈的总结
- 前辈们的总结
- 某前辈的总结
- 前辈们的总结
- 使用CFileDialog的问题
- 使用CFileDialog打开多个文件并获取文件名
- java获取路径,文件名的方法总结
- 关于asp获取当前文件名的问题
- Python2获取中文文件名的编码问题
- CFileDialog过滤文件名
- CFileDialog 异常退出的问题
- CFileDialog::GetFileName的诡异问题
- 基于CFileDialog对多个文件名的排序
- lua中获取table长度的问题
- css样式学习笔记七
- 自学QT之UDP发送数据
- Cannot use the diamond generic notation when running in JDK inferior to 1.7 mode
- C++调用java的过程
- Fragment+viewpager切换滑动页面Demo
- CFileDialog获取文件名长度的问题(总结前辈)
- 生成具有目录结构的CAB文件
- Spring MVC常用注解整理
- ehcache 实现缓存共享
- Android自定义Dialog的Match_parent无效问题解决
- Pixhawk---基于NSH的Firmware开发与调试
- 采用maven 对tomcat 进行自动部署
- iOS UIWebView 全屏播放视频横屏 app其他页面不支持横屏
- Spring学习笔记---3-AOP详解