![]() |
Dateinamen mit (nummer) umbennen wenn doppelt
Hallo, ich habe ein Programm entwickelt was mir per Knopfdruck alle Dateien aus Unterordnern in den Hauptordner verschiebt um die Unterordner zu löschen.
Dieses Problem ist gelöst doch nun soll auch noch das hier gemacht werden: Wenn im Hauptordner eine "Datei.ext" bereits vorhanden ist, füge wie in Windows üblich eine Nummer in einer Klammer ein. Diese Problem ist gelöst aber leider nur partiell. Soll heißen, momentan mach meine app folgendes Exemplarische Ordner Struktur: \Test\Datei.ext \Test\a\Datei.ext \Test\b\Datei.ext meine App macht nun aus \a\ -> \Datei (1).ext und aus \b\ -> Datei (1)(1).ext Von daher meine Frage, gibt es in Delphi was diese Art der Umbenennung bereits automatisiert bereitstellt? So das "Datei (1).ext" und "Datei (2).ext" entsteht wenn "Datei.ext" bereits vorhanden ist. Kann entfernt werden :lol:
Delphi-Quellcode:
function GetNewName(const ABase, AFile: WideString): WideString;
var s, ss: string; i: Integer; begin Result := ''; if (IncludeTrailingPathDelimiter(String(ABase)) = IncludeTrailingPathDelimiter(ExtractFilePath(String(AFile)))) then Exit; s := IncludeTrailingPathDelimiter(String(ABase)) + ExtractFileName(String(AFile)); if (not FileExists(s)) then begin Result := WideString(s); Exit; end; i := 1; s := IncludeTrailingPathDelimiter(String(ABase)); repeat ss := s + ExtractFileNameWOExt(ExtractFileName(String(AFile))) + ' (' + IntToStr(i) + ')' + ExtractFileExt(String(AFile)); Inc(i, 1); until (not FileExists(ss)); Result := WideString(ss); end; |
AW: Dateinamen mit (nummer) umbennen wenn doppelt
Reicht nicht sowas:
i:=1; while FileExists(Name+'('+IntToStr(i)+')'+Ext) do inc(i); kopiere -> Name+Ext, Name+'('+IntToStr(i)+')'+Ext Beste Grüße |
AW: Dateinamen mit (nummer) umbennen wenn doppelt
Danke tomkupitz, bin auf etwas gleiches gekommen :oops::oops::oops:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz