09. januar 2003 - 18:19Der er
7 kommentarer og 1 løsning
Rename
var sr: TSearchRec; navn: string;
begin if FindFirst('e:\testmappe\*.mp3', 0, sr) = 0 then begin repeat begin navn := copy(sr.Name,1,length(sr.Name)-4); RenameFile('e:\testmappe\'+sr.Name, 'e:\testmappe\'+navn+' - en fil.mp3'); end; until FindNext(sr) <> 0; FindClose(sr); end; end;
Hvordan laver man et program der går ind og omdøber alle filer i en mappe til filnavn - en fil.mp3 jeg har prøvet mig lidt frem men det virker ikke helt
Danmark vil mindske afhængigheden af globale techgiganter, men det kræver mere end politiske formuleringer og strategier, understreger PROSA’s formand Niels Bertelsen.
var sr: TSearchRec; navn: string; begin if FindFirst('e:\testmappe\*.*', 0, sr) = 0 then begin repeat begin navn := changefileext(sr.Name, ''); RenameFile('e:\testmappe\'+sr.Name, 'e:\testmappe\'+navn+' - en fil.mp3'); end; until FindNext(sr) <> 0; FindClose(sr); end; end;
jeg har prøvet jeres koder, de gør det samme som min. Nogen af filerne omdøber den flere gange sådan at hvis der er en fil der hedder "hej" så bliver den omdøbt til "hej - en fil - en fil.mp3" noget i den stil :)
var sr: TSearchRec; navn: string; I: Integer; begin I := FindFirst('e:\testmappe\*.*', faAnyFile, sr);
while I = 0 do begin navn := changefileext(sr.Name, ''); RenameFile('e:\testmappe\'+sr.Name, 'e:\testmappe\'+navn+' - en fil.mp3'); I := FindNext(sr); end; FindClose(sr); end;
Det at den bliver ændret flere gange må skyldes at den bliver lagt bagerst i listen når den bliver rettet, og da den stadig hedder *.mp3 bliver navnet åbenbart ændret en gang til
Eller også hed filen allerede noget med ' - en fil' Så må du sætte en ekstra kontrol ind:
If pos(' - en fil',s.Name) = 0 then RenameFile(path+s.Name, path+z+'- en fil.mp4');
så bliver filnavne der allerede indeholder ' - en fil' ikke ændret en gang til.
Dvs.:
procedure TForm1.Button1Click(Sender: TObject); var s : TSearchRec; path,ext,z:string;
begin path := 'e:\testmappe\'; ext := '.mp3'; if FindFirst(path+'*'+ext, faAnyFile, s) = 0 then repeat z := copy(s.Name,1,length(s.Name)-length(ext)); {fjerner extension} If pos(' - en fil',s.Name) = 0 then RenameFile(path+s.Name, path+z+'- en fil.mp3'); until FindNext(s) <> 0; end;
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.