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.