Ich brauche jetzt auch mal so eine Funktion. Aber die von SirThornberry sieht mir doch recht kompliziert aus. Gibt es da keine einfachere Möglichkeit solch eine Liste zu erstellen? Btw. verstehe ich sie nicht so ganz.
Als Grundlage wollte ich diesen Code nehmen:
Delphi-Quellcode:
function FindEmptyFolders(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
begin
repeat
if wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY =
FILE_ATTRIBUTE_DIRECTORY then
if (string(wfd.cFileName) <> '.') and (string(wfd.cFileName) <>
'..') then
FindEmptyFolders(RootFolder + wfd.cFileName, Mask, Recurse);
until FindNextFile(hFile, wfd) = False;
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
//...;
ShowMessage(RootFolder);
end;
until FindNextFile(hFile, wfd) = False;
finally
Windows.FindClose(hFile);
end;
end;
Zurückgegeben werden sollte ein dynamisches Array mit den leeren Ordnern.