请输入您要查询的百科知识:

 

词条 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/1 20:50:10