Dateien umbenennen oder verschieben |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
Dieser Artikel zeigt, wie Sie Dateien umbenennen oder verschieben können. Dateien, die umbenannt werden, liegen weiterhin im gleichen Verzeichnis. Verschobene Dateien können einen anderen Dateinamen und/oder Pfad haben.
Die untenstehende Funktion greift auf die API ShFileOperation zurück. Über die Einstellung fo_Move wird sie angewiesen, die Dateien zu verschieben bzw. umzubenennen. Theoretisch könnte man auch fo_Rename verwenden. Auf diese Weise ist aber wirklich nur ein umbenennen einer Datei möglich. Unsere Funktion erlaubt es mehrere Dateien gleichzeitig wahlweise umzubenennen oder zu verschieben.
Die Unit ShellApi muss eingebunden werden.
ARenameCheck: boolean = false): boolean;
var
sh: TSHFileOpStruct;
begin
sh.Wnd := Application.Handle;
sh.wFunc := fo_Move;
// String muss mit #0#0 Terminiert werden, um das Listenende zu setzen
sh.pFrom := PChar(AOldName + #0);
sh.pTo := PChar(ANewName + #0);
sh.fFlags := fof_Silent or fof_MultiDestFiles;
if ARenameCheck then
sh.fFlags := sh.fFlags or fof_RenameOnCollision;
Result:=ShFileOperation(sh)=0;
end;
Als Parameter werden die alten und die neuen Dateinamen erwartet. Der optionaler Parameter gibt an, ob mögliche Kollisionen mit bereits vorhandenen Dateinamen behandelt werden sollen.
Sollen mehrere Dateien umbenannt werden, müssen die einzelnen Dateinamen mit einem #0 getrennt werden:
begin
RenameFileEx('c:\a1.txt' + #0 + 'c:\a2.txt', 'c:\b1.txt' + #0 + 'c:\b2.txt');
end;
- Datei mit zugeordneter Anwendung öffnen
- Programm ohne sichtbares Fenster starten
- Größe einer Datei ermitteln
- Feststellen, ob eine Datei existiert
- Erstellungsdatum von Dateien ermitteln
- Letzten Dateizugriff ermitteln
- Ist eine Datei in Benutzung
- Dateiversion ermitteln
- Datei nach einem bestimmten String durchsuchen
- Anwendung ermitteln, die mit einer Dateiendung verknüpft ist