Hallo,
ich habe mir diese funktion gekrallt(bisschen gemodded (Provisorisch)):
Delphi-Quellcode:
function FindAllFiles(RootFolder: string; Mask: string = '*.*'; Recurse: Boolean
= True): TStringDynArray;
var
wfd : TWin32FindData;
hFile : THandle;
begin
if AnsiLastChar(RootFolder)^ <> '\' then
RootFolder := RootFolder + '\';
if Recurse then
begin
hFile := FindFirstFile(PChar(RootFolder + '*.*'), wfd);
if hFile <> INVALID_HANDLE_VALUE then
try
repeat
if wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY =
FILE_ATTRIBUTE_DIRECTORY then
if (string(wfd.cFileName) <> '.') and (string(wfd.cFileName) <> '..')
then
FindAllFiles(RootFolder + wfd.cFileName, Mask, Recurse);
until FindNextFile(hFile, wfd) = False;
finally
windows.FindClose(hFile);
end;
end;
hFile := FindFirstFile(PChar(RootFolder + '*.*'), wfd);
if hFile <> INVALID_HANDLE_VALUE then
try
repeat
if wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY <>
FILE_ATTRIBUTE_DIRECTORY then
begin
FileCount := length(Files)+1;
Setlength(Files, FileCount);
Files[FileCount - 1] := RootFolder + String(wfd.cFileName) + #09#09#09#09#09 + inttostr(GetFileSize(RootFolder + String(wfd.cFileName)));
end
else begin
FileCount := length(Files)+1;
Setlength(Files, FileCount);
Files[FileCount - 1] := RootFolder + String(wfd.cFileName) + #09#09#09#09#09 +'FOLDER';
end;
until FindNextFile(hFile, wfd) = False;
finally
Windows.FindClose(hFile);
end;
end;
so, das geht alles eig. wunderbar doch wenn ich auf einen ordner innerhalb von C:\Dokumente und Einstellungen oder auf einer anderen Partition zugreifen will gibt mir die funktion nichts zurück... wieso?
ich benutze windows XD sp2 und rufe diese funktion in einer
dll auf.