怎样得到一个文件简化的路径名?
我通过opendialog得到一个文件名(含路径),例如:c:\TestFile\111\222\3333\4444\5555\6666\myfile.txt,
由于路径太长我想得到类似这种c:\TestFile\111\222\...\6666\myfile.txt形式,怎么实现?有没有现成的函数可以使用。 我现在使用copy函数+文件名形式来获得,感觉不怎么理想。
[解决办法]
function PathCompactPathExW(pszOut, pszSrc: PWideChar; cchMax: UINT;
dwFlags: DWORD): BOOL; stdcall; External 'shlwapi.dll' Name 'PathCompactPathExW';
第一个是输出
第二个是输入
第三个是设定长度,第四个0
- Delphi(Pascal) code
procedure TForm1.Button1Click(Sender: TObject);var pstr: array [0 .. MAX_PATH] of WideChar;begin if OpenDialog1.Execute then begin PathCompactPathExW(pstr, PWideChar(OpenDialog1.FileName), 100, 0); Edit1.Text := String(pstr); end;end;
[解决办法]