public virtual DirectoryInfo[] GetDirectories(DirectoryInfo directoryInfo, InputParams inputParams, ref SyncResults results)
{
// get all directories
List<DirectoryInfo> directoryList = new List<DirectoryInfo>(directoryInfo.GetDirectories());
// do we need to do any filtering?
bool needFilter = (inputParams != null) && (inputParams.AreSourceFilesFiltered);
if (needFilter)
{
for (int i = 0; i < directoryList.Count; i++)
{
DirectoryInfo subdirInfo = directoryList[i];
// filter out directories based on hiddenness and exclude/include filespecs
if ((inputParams.ExcludeHidden && ((subdirInfo.Attributes & FileAttributes.Hidden) > 0)) ||
ShouldExclude(inputParams.ExcludeDirs, inputParams.IncludeDirs, subdirInfo.Name))
{
directoryList.RemoveAt(i);
results.DirectoriesIgnored++;
i--;
}
}
}
return directoryList.ToArray();
}