private bool includeFile(FileInfo fileInfo, String[] includeExtension, String[] excludeExtension, String filter)
{
var extension = fileInfo.Extension.ToLower();
bool add = true;
if (String.IsNullOrEmpty(extension))
{
extension = "*.";
}
else if (extension.Length > 0 && extension[0] == '.')
{
extension = extension.Substring(1).ToLower();
}
if (!String.IsNullOrEmpty(filter) &&
!fileInfo.Name.StartsWith(filter, StringComparison.InvariantCultureIgnoreCase))
{
add = false;
}
if (add)
{
if ((excludeExtension.Length > 0 &&
excludeExtension.Contains(extension)) || (includeExtension.Length > 0 &&
!includeExtension.Contains(extension)))
{
add = false;
}
}
return add;
}