GetLongPathName
计算机术语
获取指定文件路径的长路径形式。该API不适合对畸形文件夹进行操作。
VB版
说明
获取指定文件的长路径名
返回值
Long,装载到lpszShortPath缓冲区的字符数量。如lpszLongPath的长度不足,不能容下文件名,就返回需要的缓冲区长度
参数表
参数 类型及说明
lpszShortPath String,指定欲获取长路径名的那个文件的名字。
lpszLongPath String,指定一个缓冲区,用于装载文件的长路径和文件名
cchBuffer Long,lpszLongPath缓冲区长度
Delphi版
Function GetLongPathName(lpszShortPath:PChar,lpszLongPath:PChar,cchBuffer:Cardinal):Cardinal
lpszShortPath 短文件名,原来的字符串
lpszLongPath长文件名,我们想要的结果
cchBuffer 缓冲区长度
举个例子:
S := ParamStr(1);
GetLongPathName(PChar(S),PChar(S),Length(S));
将程序启动时得到的S值(一个长文件名),变为一个短文件名,并且还是将S的值改变为该短文件名。
但是,在实际使用中,字符串的最后几位会返回一些奇怪的字符,例如 #0'EX' 等等,我用的方法是:
for I := Length(S) downto Length(S)-2 do
Runaim:= #32;
#32在Delphi中为空格。具体可以参见常用字符与ASCII代码对照表。
C++版
DWORD WINAPI GetLongPathName
LPCTSTR lpszShortPath,//指定的要转换的路径
LPTSTR lpszLongPath,//接收长路径的缓冲区
DWORD cchBuffer//缓冲区长度
函数说明:
将指定的路径转化成长路径形式
返回值:
函数执行成功则返回lpszLongPath接收的字符串长度,不包括空字符;如果lpszLongPath长度太小,则函数返回接收长路径需要的缓冲区长度,包括空字符,因此如果返回值大于cchBuffer,则应重新分配lpszLongPath,使其长度足够容纳长路径;如果函数因为其他原因失败则返回0,可以通过GetLastError获取错误信息
参考资料
最新修订时间:2023-12-16 22:42
目录
概述
VB版
参考资料