/ 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
Opsamling af Undermapper og Filer
Fra : PL


Dato : 03-01-02 00:42

Hej alle NG'er

Er der en af jer, som ligger inde med en funktion, som kan opsnappe alle
Filer og Undermapper ud fra en angiven Mappe, gerne med et result afleveret
i en TStringlist.

Ellers er der kun den hårde vej med FindFirst og FindNext.

Mvh
PL



 
 
Mads M. (03-01-2002)
Kommentar
Fra : Mads M.


Dato : 03-01-02 19:33

On Thu, 3 Jan 2002 00:42:07 +0100, "PL" <jessie-peter@get2net.dk>
wrote:

>Filer og Undermapper ud fra en angiven Mappe, gerne med et result afleveret
>i en TStringlist.

Jeg tror ikke du kommer uden om FindFirst og FindNext.
Jeg snippede engang dette her fra et eller andet sted:

---------------
procedure GetAllFiles(aPathPlusMask:string;aSubFolders: boolean;
aResultList: TStringList);
var Search: TSearchrec;
hDir: string;
hMask: string;

begin
hMask := aPathPlusMask;
hDir := ExtractFilepath(aPathPlusMask);
if hDir[length(hDir)]<>'\' then hDir := hDir + '\';

if not DirectoryExists(hDir) then
EXIT;

if FindFirst(hMask, $3F, Search)= 0 then
repeat
aResultList.Add(hDir + Search.Name);
until FindNext(Search)<>0;

if aSubFolders then
if FindFirst(hDir + '*.*',fadirectory, Search)= 0 then
repeat
if((search.attr and fadirectory)=fadirectory) and
(search.name[1]<>'.') then
GetAllFiles(hDir+Search.Name+'\'+ExtractFilename(hMask),
aSubFolders,
aResultList);
until FindNext(Search) <> 0;
end;
---------------

Den kaldes så med f.eks.:
GetAllFiles('C:\*.mp3', true, EnStringList);


/Mads

René Jensen (03-01-2002)
Kommentar
Fra : René Jensen


Dato : 03-01-02 19:38

PL wrote:
> Er der en af jer, som ligger inde med en funktion, som kan opsnappe alle
> Filer og Undermapper ud fra en angiven Mappe, gerne med et result afleveret
> i en TStringlist.

Jada ...

[start]
program FilesToStringList;

{$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
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);
while FindNext(SearchRec) = 0 do
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;

var
FileList: TStringlist;

begin
FileList := TStringList.Create;
try
FileList.Clear;
FindFiles('C:\TEMP', FileList);
FileList.Sort;
finally
FileList.Free;
end;
end.
[end]

Håber du kan bruge det til noget ...

--
Med venlig hilsen,
René Jensen

Once a upon a time a wise man said to me:
"I consider Windows like I consider bad weather ... I accept it and hope
for something better"

PL (04-01-2002)
Kommentar
Fra : PL


Dato : 04-01-02 11:17

Tak for hjælpen



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste