Jak dokonać konwersji długiej nazwy ścieżki na krótką (dos).

netvalker
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ShellCtrls, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    ShellTreeView1: TShellTreeView;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure ShellTreeView1Change(Sender: TObject; Node: TTreeNode);
  private
    { Private declarations }
  public
    { Public declarations }
    Function ShortPath(LongPath : String) : String;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

Function Tform1.ShortPath(LongPath : String) : String;
var
   Buffer: array[0..MAX_PATH-1] of Char;
Begin
   SetString(Result,Buffer,GetShortPathName(PAnsiChar(LongPath),Buffer,SizeOf(Buffer)));
End;

procedure TForm1.ShellTreeView1Change(Sender: TObject; Node: TTreeNode);
begin
     Edit1.Text := ShellTreeView1.Path;                          // Edit1 wyświetla ścieżkę przed konwersją;
     Edit2.Text := LowerCase(ShortPath(ShellTreeView1.Path));   //  Edit2 wyświetla ścieżkę po konwersji;
end;

end.

Myślę że wszystko jest na tyle jasne że nie trzeba kodu tłumaczyć!!

6 komentarzy

Co to mają byc za wyrazy. Co za banda dzikusów...

A nie łatwiej ExtractShortPathName(Śćieżka);
????

Eeeee, sorry... mea culpa [wstyd]

Adam ale wpadka :P

eeeeeee Zanim się zaczniesz wqrwiać to sprawdź bo właśnie tam to jest DODANE !! !! !!
http://4programmers.net/view_faq.php?id=492

AAAa, #$%#$$## kur****. Juz nie mam sily :[ Takie rzeczy dodawaj do FAQ!!!
Prosze Cie teraz abys usunal to newsa oraz dodal do FAQ te wskazowke... Bosz... ilez mozna mowic...