Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: RenameFile funzt nur halb

  Alt 7. Okt 2004, 17:12
also in die LabeledEdits...naja, ich geb euch ma den kompletten code:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    LabeledEdit1: TLabeledEdit;
    LabeledEdit2: TLabeledEdit;
    Button1: TButton;
    procedure FindAllFiles(var FileList: TStringList; RootFolder: string; Mask: string = '*.*'; Recurse: Boolean = True);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FindAllFiles(var FileList: TStringList; RootFolder: string; Mask: string = '*.*'; Recurse: Boolean = True);
var SR: TSearchRec;
begin
  if AnsiLastChar(RootFolder)^ <> '\then
    RootFolder := RootFolder + '\';
  if Recurse then
    if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then
    try
      repeat
        if SR.Attr and faDirectory = faDirectory then
          if (SR.Name <> '.') and (SR.Name <> '..') then
            FindAllFiles(FileList, RootFolder + SR.Name, Mask, Recurse);
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
  if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then
  try
    repeat
      if SR.Attr and faDirectory <> faDirectory then FileList.Add(RootFolder + SR.Name);
    until FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  files, temp:TStringList;
  i:integer;
begin
  files:=TStringList.Create;
  temp:=TStringList.Create;
  FindAllFiles(files,ExtractFileDir(Application.ExeName));
  for i:=0 to files.Count-1 do
    temp.Add(StringReplace(files[i],LabeledEdit1.Text,LabeledEdit2.Text,[rfReplaceAll]));
  for i:=0 to files.Count-1 do
    RenameFile(files[i],temp[i]);
end;

end.
im prinzip nur zwei LabeledEdits und ein button
1. edit: zu ersetzen
2. edit: einzusetzen

ich weiss auch das der code unoptimiert ist etc. aber erstma will ich das er funzt
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat