词条 | GetLongPathName |
释义 | 获取指定文件路径的长路径形式。该API不适合对畸形文件夹进行操作。 VB版Declare Function GetLongPathName Lib "kernel32" Alias "GetLongPathNameA" (ByVal lpszShortPath As String, ByVal lpszLongPath As String, ByVal cchBuffer As Long) As Long 说明 获取指定文件的长路径名 返回值 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()获取错误信息 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。