Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.479 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Dateipfad in Variable speichern?

  Alt 19. Okt 2022, 14:41
Alternativ könnte man das auch so machen (Unit System.IOUtils wird benötigt):

Delphi-Quellcode:
type
  TProfiles = (p1, p2, p3, p4);

var
  Basepath : String = 'H:\testend\profil';

  SelectedPath: String;

var
  Form26: TForm26;

implementation

{$R *.dfm}

function ExistsOrCreateDir (APath: String): Boolean;
begin
    try
    if not TDirectory.Exists(APath) then begin
      System.IOUtils.TDirectory.CreateDirectory(APath);
    end;
  finally
    Result := TDirectory.Exists (APath);
  end;
end;


procedure TForm26.Button1Click(Sender: TObject);
begin
  SelectedPath := BasePath + Succ (Ord (p1)).tostring;
  if ExistsOrCreateDir (SelectedPath) then begin
    //...
  end;
end;
Die Verwendung von TDirectory ist Plattformübergreifend und erhöht somit die Wiederverwendbarkeit des Codes.
Intern verwendet TDirectory ForceDirectories, wenn erforderlich und schmeißt eine Exception mit einem entsprechenden veständlichen Hinweis, wenn z.B. ein nicht existierendes Laufwerk im Basepath verwendet wird.

Mit dieser Variante kann man Basepath leicht abändern und das ganze flexibel auf einem anderen Laufwerk einsetzen.

Je nach dem, könnte man auch eine eigene Klasse bilden (hängt vom sonstigen Code ab).

Edit: Kurz nach dem Post fiel mir auf, dass Du ja noch den ausgewählten Path für weitere Aktionen brauchst, daher hier noch etwas abgeändert.

Geändert von Harry Stahl (19. Okt 2022 um 15:26 Uhr)
  Mit Zitat antworten Zitat