Ik begreep uit je eerste post dat je automatisch alle bestandsnamen wilt veranderen, en niet handmatig toch, anders kun je net zo goed je favoriete filemanager gebruiken (een beetje leuke filemager kan ook leuk batch-gewijs bestanden hernoemen).
Originally Posted by
Mkkl
Maar het punt is nu dat ik zeg maar vanuit het programma de veranderde bestandsnaam zeg maar terugkoppel naar het bestand. Maar dat snap ik niet helemaal want met de manier waarop ik het nu doe haal ik volgens mij alleen de bestandsnaam van het bestand maar dan heeft de bestandsnaam in mijn lijst geen "link" meer met het bestand zodat ik als ik de bestandsnaam ik mijn programma verander er niks met het bestand zelf gebeurd.
De oplossing, mocht mijn bovenstaande veronderstelling juist zijn, is dan om die geopende bestanden helemaal niet in een listbox o.i.d. te tonen.
Je weet welke bestanden je wilt hernoemen, n.l. OpenDialog1.Files[].
Nu alleen nog een algoritme bedenken om de nieuwe naam te maken.
Ongeteste code:
delphi Code:
function NewName(const OldName, Prefix: String): String;
var
p: Integer;
begin
p := Pos('-', OldName);
if P > 0 then
Result := Prefix+ Copy(OldName, p+1, Length(OldName)-p)
else
Result := Prefix + OldName;
end;
procedure TForm1.ButtonGoForItClick(Sender: TObject);
var
Index: Integer;
OldFn, NewFn: String;
begin
for Index := 0 to OpenDialog1.Files.Count - 1 do
begin
OldFn := OpenDialog1.Files[Index];
NewFn := NewName(OldFn, PrefixEdit.Text);
if (OldFn <> NewFn) then RenameFile(OldFn, NewFn);
end;
end;
Bart
Bookmarks