比如将C:/My Installations/Delphi7Compent/Media/CDROM/Disk Images/Disk1/data2.cab显示为C:/My Installati.../data2.cab
API函数为ShlWApi.dll中的PathCompactPathEx,同样的,在此DLL内还有更多关于Path路径的函数。
delphi没有把这个DLL进行封装,但有人已经把它封装好了。下载地址:
ftp://delphi-jedi.org/api/Shlwapi.zip
function PathCompactPathExA(pszOut: PAnsiChar; pszSrc: PAnsiChar; cchMax: UINT; dwFlags: DWORD): BOOL; stdcall;
...
{$EXTERNALSYM PathCompactPathExA}
function PathCompactPathEx(pszOut: PChar; pszSrc: PChar; cchMax: UINT; dwFlags: DWORD): BOOL; stdcall;
...
{$EXTERNALSYM PathCompactPathEx}
function PathCompactPathEx; external shlwapi32 name
'
PathCompactPathExA
'
;
function CompressPath(SrcPath:String;DestLength:Integer):String;
var
InBuffer, OutBuffer : array[
0
..MAX_PATH] of
char
;
begin
FillChar(InBuffer, MAX_PATH
+
1
,
0
);
FillChar(OutBuffer, MAX_PATH
+
1
,
0
);
StrCopy(InBuffer,PChar(SrcPath));
PathCompactPathEx(OutBuffer, InBuffer, DestLength,
0
);
//
这里的DestLength就是设置长度
Result:
=
OutBuffer;
end;
本文介绍了一个用于简化长路径文件名显示的方法,通过使用ShlWApi.dll中的PathCompactPathEx函数来实现。提供了Delphi中封装该功能的代码示例,并附带了下载链接。
1399

被折叠的 条评论
为什么被折叠?



