Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Dateiendung von Dateien nach Vorgabe ändern (https://www.delphipraxis.net/148643-dateiendung-von-dateien-nach-vorgabe-aendern.html)

rhodan 5. Mär 2010 20:03


Dateiendung von Dateien nach Vorgabe ändern
 
Moin!

Kann ich mit einem ähnlichen Befehl wie

deletefile ('C:\Programme\test\*.*');

sämtlichen in einem ordner befindlichen dateien eine andere endung geben? also das ich z.B allen dateien in diesem ordner statt des existierenden .dll, .ini, .jpg ein...zum beispiel .bmp verpasse etc...?!
hab eine datei vor jahren versteckt, ein bild und diese file umbenannt, möchte sie wiederfinden

danke für die hilfe

rhodan

wicht 5. Mär 2010 20:10

Re: Dateiendung von Dateien nach Vorgabe ändern
 
Stichworte FindFirst, FindNext, RenameFile. Wie willst du denn auf diesem Weg die Datei wiederfinden?
Und wenn du das wirklich vorhast: Bitte mit einer vorher erstellten Kopie von system und system32 diese Geschichte durchführen.. Mit den echten Ordnern wäre das sehr riskant :-D

Wolfgang Mix 5. Mär 2010 20:11

Re: Dateiendung von Dateien nach Vorgabe ändern
 
Das und viel mehr lässt sich lässig mit dem Total Commander von Ghisler.com erledigen.

rhodan 5. Mär 2010 20:16

Re: Dateiendung von Dateien nach Vorgabe ändern
 
danke für die antworten..möchte dies allerdings selbst coden :-)

na wenn ich das bild damals in eine dll umbenannt habe werden alle 'falschen' dll's keine bilder anzeigen, das echte bild allerdings wird das einzige sein was dann sichtbar ist wenn ich die ansicht in 'miniaturansicht' andere.

ich arbeite jetzt mit folgendem code, der aber nicht funktioniert :S
wo steckt der fehler?

Delphi-Quellcode:
procedure RenameFiles;
const
Path = 'C:\rename\';
OldExt = '.jpg';
NewExt = '.bmp';

var
sr: TSearchRec;
NewName: string;
begin
if FindFirst(Path + '*.*', faAnyFile, sr) = 0 then
repeat
if sr.Attr and faDirectory <> 0 then
Continue;
if LowerCase(ExtractFileExt(sr.Name)) = OldExt then
begin
NewName := Copy(sr.Name, 1, Length(sr.Name) - Length(OldExt)) + NewExt;
if not RenameFile(sr.Name, NewName) then
Beep;
end;
until FindNext(sr) <> 0;
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
renamefiles;
end;

end.
gracias!

SirThornberry 5. Mär 2010 21:13

Re: Dateiendung von Dateien nach Vorgabe ändern
 
Ohne Einrückung etc. ist der Quelltext sehr schwer zu lesen. Was mir allerdings sofort auffällt. Das FindClose fehlt.

wicht 5. Mär 2010 21:22

Re: Dateiendung von Dateien nach Vorgabe ändern
 
Mal debuggt...?
Delphi-Quellcode:
if not RenameFile(sr.Name, NewName) then
ist glaube ich auch falsch, weil du nur die Dateinamen mitgibst, ohne benötigte Pfadangabe...

HTH

DeddyH 6. Mär 2010 10:05

Re: Dateiendung von Dateien nach Vorgabe ändern
 
Ungetestet:
Delphi-Quellcode:
procedure RenameFiles;
const
  Path = 'C:\rename\';
  OldExt = '.jpg';
  NewExt = '.bmp';
var
  sr: TSearchRec;
  NewName: string;
begin
  if FindFirst(Path + '*.*', faAnyFile, sr) = 0 then
    try
      repeat
        if sr.Attr and faDirectory = 0 then
          if LowerCase(ExtractFileExt(sr.Name)) = OldExt then
            begin
              NewName := ChangeFileExt(Path + sr.Name,NewExt);
              if not RenameFile(Path + sr.Name, NewName) then
                Beep;
            end;
      until FindNext(sr) <> 0;
    finally
      SysUtils.FindClose(sr);
    end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 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 by Thomas Breitkreuz