Hier mit kann´st du dir einen Ordner auswählen:
Code:
[b]uses[/b] shlobj;
[b]function[/b] TfrmMain.OpenFolder(root: Integer; Caption: [b]string[/b]): [b]string[/b]; [i]//Verzeichnis-Öffnen-Dialog-Funktion[/i]
[b]var[/b]
bi: TBrowseInfo;
lpBuffer: PChar;
pidlPrograms, pidlBrowse: PItemIDList;
[b]begin[/b]
[b]if[/b] ([b]not[/b] SUCCEEDED(SHGetSpecialFolderLocation(GetActiveWindow, root,
pidlPrograms))) [b]then[/b]
exit;
lpBuffer := StrAlloc(MAX_PATH);
bi.hwndOwner := GetActiveWindow;
bi.pidlRoot := pidlPrograms;
bi.pszDisplayName := lpBuffer;
bi.lpszTitle := PChar(Caption);
bi.ulFlags := BIF_RETURNONLYFSDIRS;
bi.lpfn := [b]nil[/b];
bi.lParam := 0;
pidlBrowse := SHBrowseForFolder(bi);
[b]if[/b] (pidlBrowse <> [b]nil[/b]) [b]then[/b]
[b]if[/b] SHGetPathFromIDList(pidlBrowse, lpBuffer) [b]then[/b]
Result := lpBuffer;
StrDispose(lpBuffer);
[b]end[/b];
[b]procedure[/b] TfrmMain.cmdOpenClick(Sender: TObject);
[b]begin[/b]
txtPath.Caption := OpenFolder(CSIDL_DRIVES, 'Verzeichnis wählen'); [i]//Übergabe des gewählten Verzeichnisses[/i]
[b]end[/b];
Und dann nur noch
CopyFile.