首页  编辑  

减少文件路径名的长度

Tags: /超级猛料/Stream.File.流、文件和目录/目录/   Date Created:

]、。·ˉˇ¨〃々—~‖…’”〕〉》」』〗】∶!"'),.:;?]` 如果有这样一个目录:

  c:\windows\media\temp\abc\sound\chime.wav

我希望它能缩短成:

  c:\windows\..\sound\chime.wav

  如何写程序呢?

function shortenfilename(s : string) : string;

var

 drive,curdrive : string[2];

 dir,curdir : string[80];

  name : string[20];

  ext : string[5];

  i : byte;

begin

 for i:=1 to length(s) do s[i]:=upcase(s[i]);

  s:=fexpand(s);

  fsplit(s,dir,name,ext);

 drive:=copy(dir,1,2);

 dir:=copy(dir,4,length(dir)-3);

 getdir(0,curdir);

 curdrive:=copy(curdir,1,2);

 curdir:=copy(curdir,4,length(curdir)-3)+‘\';

 if drive=curdrive then begin

 if copy(dir,1,length(curdir))=curdir then begin

 i:=length(curdir);

 if length(dir)<>i then dir:=dir+‘\';

 shortenfilename:=copy(dir,i+1,length(dir)-i-1)+name+ext;

 end else shortenfilename:=copy(s,3,length(s)-2);

 end else shortenfilename:=s;

end;