[转]CFileDialog::GetFileName可用的最大文件长度

今天在调试一个程序时发现,

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获取全路径,然后从全路径截取文件名。或者干脆限制文件名长度。

 

 

原始地址:http://blog.csdn.net/harry330/archive/2009/07/01/4313444.aspx

你可能感兴趣的:([转]CFileDialog::GetFileName可用的最大文件长度)