Herzlich willkommen in der Delphi-PRAXiS, rennkuckuck.
Du kannst immer nur eine Datei mit AssignFile zuweisen. Um wildcards aufzulösen brauchst du eine eigene Funktion:
Delphi-Quellcode:
// uses FileCtrl
function GetFiles(fileSpec: String; s: TStrings = nil): Integer;
begin
with TFileListBox.CreateParented(HWND(-3)) do
try
Mask := ExtractFileName(fileSpec);
Directory := ExtractFilePath(fileSpec);
FileType := [ftArchive];
Result := Items.Count;
if Assigned(s) then
s.Assign(Items);
finally
Free;
end;
end;
Mit der kannst du dann die Dateien in einem Verzeichnis so ermitteln:
Delphi-Quellcode:
var
s: TStrings;
fileCount: Integer;
begin
s: TStringList.Create;
fileCount := GetFiles('c:\inetpub\wwwroot\demo\*.html', s);
for i := 0 to Pred(s.Count) do
AdjustLinks(s[i], 'gif', 'gifs');
s.Free;
end;
Die Routine zum Anpassen der Verzeichnisstufe könnte dann so aussehen:
Delphi-Quellcode:
procedure AdjustLinks(fn: TFileName; dirOld, dirNew: String);
var
line: String;
s: TStrings;
i, iPos: Integer;
begin
s := TStringList.Create;
s.LoadFromFile(fn);
dirOld := '/' + Uppercase(dirOld) + '/';
dirNew := '/' + dirNew + '/';
for i := 0 to Pred(s.Count) do
repeat
iPos := Pos(dirOld, Uppercase(s[i]));
if iPos > 0 then
begin
line := s[i];
Delete(line, iPos, Length(oldDir));
Insert(newDir, line, iPos);
s[i] := line;
end; // hat gefehlt...
until iPos = 0;
s.SaveToFile(fn);
s.Free;
end;
Getippt und nicht getestet...
Freundliche Grüße vom marabu