private static void _iterate (@Nonnull final DefaultFolderTreeItem <String, File, ICommonsList <File>> aTreeItem,
@Nonnull final File aDir,
@Nullable final Predicate <? super File> aDirFilter,
@Nullable final Predicate <? super File> aFileFilter)
{
if (aDir != null)
for (final File aChild : FileHelper.getDirectoryContent (aDir))
{
if (aChild.isFile ())
{
if (aFileFilter == null || aFileFilter.test (aChild))
aTreeItem.getData ().add (aChild);
}
else
if (aChild.isDirectory () && !FilenameHelper.isSystemInternalDirectory (aChild))
{
if (aDirFilter == null || aDirFilter.test (aChild))
{
final DefaultFolderTreeItem <String, File, ICommonsList <File>> aChildItem = aTreeItem.createChildItem (aChild.getName (),
new CommonsArrayList <> ());
_iterate (aChildItem, aChild, aDirFilter, aFileFilter);
}
}
}
}