/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
masserenaming af filer
Fra : tdn


Dato : 18-10-02 21:34

Hej,

Er der nogen der kan komme med et eksempel på hvordan jeg kan rename alle
filer i et bestemt dir til fx 'streng'+filnavnet.
Eller fx lave efternavnet om på alle filer.

Mvh
Thomas



 
 
Olsen (18-10-2002)
Kommentar
Fra : Olsen


Dato : 18-10-02 23:28

Windows Commander Version 5.x

Se www.ghisler.com


> Er der nogen der kan komme med et eksempel på hvordan jeg kan rename alle
> filer i et bestemt dir til fx 'streng'+filnavnet.
> Eller fx lave efternavnet om på alle filer.
>
> Mvh
> Thomas




dk_sz (20-10-2002)
Kommentar
Fra : dk_sz


Dato : 20-10-02 12:23

> Windows Commander Version 5.x
>
> Se www.ghisler.com

eller
http://www.micro-sys.dk/products/multibatcher/



Thomas



Lars B. Dybdahl (19-10-2002)
Kommentar
Fra : Lars B. Dybdahl


Dato : 19-10-02 11:55

Hent http://www.cygwin.com/ og brug rename funktionen. Den kan du også
indbygge i dit eget program.

Lars.

tdn wrote:

> Hej,
>
> Er der nogen der kan komme med et eksempel på hvordan jeg kan rename alle
> filer i et bestemt dir til fx 'streng'+filnavnet.
> Eller fx lave efternavnet om på alle filer.
>
> Mvh
> Thomas

--

Dybdahl Engineering: http://dybdahl.dk/
Delphi brugergruppen DAPUG: http://dapug.dk/


René Jensen (19-10-2002)
Kommentar
Fra : René Jensen


Dato : 19-10-02 15:31

tdn wrote:
> Er der nogen der kan komme med et eksempel på hvordan jeg kan rename alle
> filer i et bestemt dir til fx 'streng'+filnavnet.
> Eller fx lave efternavnet om på alle filer.

Et simpelt eksempel skrevet på ca. 12 min.:

program Project2;

{$APPTYPE CONSOLE}

uses
   Classes,
   SysUtils;

procedure FindFiles(Path : string; var FileList : TStringList);
var
   SearchRec : TSearchRec;
begin
   if Path[Length(Path)] <> '\' then
      Path := Path + '\';
   if FindFirst(Path + '*.*', faAnyFile, SearchRec) = 0 then
      while FindNext(SearchRec) = 0 do
      begin
         if SearchRec.Attr and faDirectory = faDirectory then
         begin
            if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
               FindFiles(Path + SearchRec.Name, FileList);
         end
         else
            FileList.Add(Path + SearchRec.Name);
      end;
end;

procedure RenameFiles(const FileList : TStringList; const PreString :
string);
var
   i : Integer;
   s : string;
begin
   for i := 0 to FileList.Count - 1 do
   begin
      s := FileList.Strings[i];
      if not RenameFile(s, ExtractFilePath(s) + PreString + ExtractFileName(s)) then
         Writeln(FileList.Strings[i], ' was not renamed!');
   end;
end;

var
   FileList : TStringList;

begin
   FileList := TStringList.Create;
   try
      FileList.Clear;
      FindFiles('C:\TEMP\DELPHI', FileList);
      RenameFiles(FileList, 'xxx');
   finally
      FileList.Free;
   end;
end.

Sorry for de tabs, men det er en gammel vane fra C/C++ :)

--
Med venlig hilsen,
René Jensen


tdn (20-10-2002)
Kommentar
Fra : tdn


Dato : 20-10-02 14:55

> > Er der nogen der kan komme med et eksempel på hvordan jeg kan rename
alle
> > filer i et bestemt dir til fx 'streng'+filnavnet.
> > Eller fx lave efternavnet om på alle filer.
>
> Et simpelt eksempel skrevet på ca. 12 min.:
>
> program Project2;
>
> {$APPTYPE CONSOLE}
>
> uses
> Classes,
> SysUtils;
>
> procedure FindFiles(Path : string; var FileList : TStringList);
> var
> SearchRec : TSearchRec;
> begin
> if Path[Length(Path)] <> '\' then
> Path := Path + '\';
> if FindFirst(Path + '*.*', faAnyFile, SearchRec) = 0 then
> while FindNext(SearchRec) = 0 do
> begin
> if SearchRec.Attr and faDirectory = faDirectory then
> begin
> if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
> FindFiles(Path + SearchRec.Name, FileList);
> end
> else
> FileList.Add(Path + SearchRec.Name);
> end;
> end;
>
> procedure RenameFiles(const FileList : TStringList; const PreString :
> string);
> var
> i : Integer;
> s : string;
> begin
> for i := 0 to FileList.Count - 1 do
> begin
> s := FileList.Strings[i];
> if not RenameFile(s, ExtractFilePath(s) + PreString + ExtractFileName(s))
then
> Writeln(FileList.Strings[i], ' was not renamed!');
> end;
> end;
>
> var
> FileList : TStringList;
>
> begin
> FileList := TStringList.Create;
> try
> FileList.Clear;
> FindFiles('C:\TEMP\DELPHI', FileList);
> RenameFiles(FileList, 'xxx');
> finally
> FileList.Free;
> end;
> end.
>
> Sorry for de tabs, men det er en gammel vane fra C/C++ :)
>

np, og tak



Hans Milling (20-10-2002)
Kommentar
Fra : Hans Milling


Dato : 20-10-02 12:56

tdn wrote:
> Hej,
>
> Er der nogen der kan komme med et eksempel på hvordan jeg kan rename alle
> filer i et bestemt dir til fx 'streng'+filnavnet.
> Eller fx lave efternavnet om på alle filer.
>
> Mvh
> Thomas
>
>

I delphi, der kan du bruge findfirst og findnext (der er eksempler i
hjælpen hvor man bruger en TSearchRec), så kan du bruge deres metode
RenameFile til at omdøbe filerne:
function RenameFile(const OldName, NewName: string): Boolean;

Du kan også bruge simple dos shell kommandoer/bat filer til at gøre det
samme:

I en shell skriv: ren *.bin *.exe omdøber alle .bin filer til .exe filer
Ellers kan du jo bruge en .bat fil hvor du skriver (tror jeg nok):
---renameall.bat---
@echo off
for /f %%A IN (*.*) DO (
ren %%A prefix-%%A
)
--------end--------
Den omdøber alle filer i en mappe fra [filnavn.ext] til [prefix-filnavn.ext]


Søg
Reklame
Statistik
Spørgsmål : 177495
Tips : 31968
Nyheder : 719565
Indlæg : 6408489
Brugere : 218886

Månedens bedste
Årets bedste
Sidste års bedste