|
| 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
| |
|
|