GetFileTitle函数返回由【lpszFile】参数标识的文件的名称。
简短GetFileTitle(
LPCTSTR 【lpszFile】, | //指向文件的完整路径和文件名的指针 |
LPTSTR 【lpszTitle】, | //指向接收文件名的缓冲区的指针 |
WORD 【cbBuf】 | //缓冲区的长度 |
); |
参数
【lpszFile】
指向文件的名称和位置。
【lpszTitle】
指向缓冲区的指针,其中函数将复制文件的名称。
【cbBuf】
指定【lpszTitle】参数指向的缓冲区的长度(以字符为单位)。
返回值
如果函数成功,返回值为零。
如果文件名无效,则返回值为负数。
如果【lpszTitle】参数指向的缓冲区太小,则返回值是一个正整数,指定所需的缓冲区大小(以字节为单位)(ANSI版本)或字符(Unicode版本)。所需的缓冲区大小包括终止空字符。
备注
如果【lpszFile】参数指向的缓冲区包含以下任何元素,则GetFileTitle函数返回错误值:
*一个空字符串
*包含通配符(*),开头括号([), or closing bracket (])的字符串
*以冒号(:),斜线标记(/)或反斜杠(\\)结尾的字符串
*长度超过缓冲区长度的字符串
*无效字符(例如,空格或不可打印字符)
要获取文件名称所需的缓冲区大小,请调用【lpszTitle】设置为NULL并将【cbBuf】设置为零的函数。该函数将返回所需的大小。
GetFileTitle返回系统将用于向用户显示文件名的字符串。显示名称仅在用户显示文件名的首选项时才包含扩展名。这意味着如果在文件系统功能的调用中使用该文件,返回的字符串可能无法准确识别该文件。
如果【lpszTitle】缓冲区太小,GetFileTitle返回保存显示名称所需的大小。所需的大小与【lpszFile】缓冲区中最初指定的字符之间没有保证的连接。在将应用程序移植到Windows 95和Windows NT中,开发人员将需要更新依赖于以前版本操作系统的这种行为的任何代码。最常见的情况是故意调用GetFileTitle 【lpszTitle】设置为NULL并且【cbBuf】设置为零的代码,然后使用返回值作为【lpszFile】字符串中的索引。不再支持此技术。您通常可以使用运行时库函数(例如strrchr,wcsrchr和_mbsrchr)获得类似的结果(和卓越的性能)。
也可以看看