我用SHGetFileInfo得到文件的相关属性(文件类型,图标)。这个函数的第一个参数应该是只写文件名(而不需要写绝对路径)就可以的吧?因为它是通过扩展名来得到文件类型的。在实际使用中,确实一般情况下可以成功,可以得到正确得到文件类型等。但当文件名很长时,这个函数得到的文件类型就错了!!!比如:
SHFILEINFO fileInfoS;SHGetFileInfo("aaaaa........a.doc",FILE_ATTRIBUTE_NORMAL,&fileInfoS,sizeof(fileInfoS), SHGFI_USEFILEATTRIBUTES|SHGFI_TYPENAME|SHGFI_ICON);如果第一个参数"aaa.....a.doc"长度很长(MAX_PATH),那么fileIfoS中的文件属性就不是"word文档",而是变成了"系统文件夹"了,这是为什么呀?还望高手赐教
SHFILEINFO fileInfoS;SHGetFileInfo("aaaaa........a.doc",FILE_ATTRIBUTE_NORMAL,&fileInfoS,sizeof(fileInfoS), SHGFI_USEFILEATTRIBUTES|SHGFI_TYPENAME|SHGFI_ICON);如果第一个参数"aaa.....a.doc"长度很长(MAX_PATH),那么fileIfoS中的文件属性就不是"word文档",而是变成了"系统文件夹"了,这是为什么呀?还望高手赐教
但上面的问题却是存在的。
你的扩展名总不会>MAX_PATH吧