39 lines
1.2 KiB
C#
39 lines
1.2 KiB
C#
/*
|
|
* Author: Nikolay Dvurechensky
|
|
* Site: https://www.dvurechensky.pro/
|
|
* Gmail: dvurechenskysoft@gmail.com
|
|
* Last Updated: 12 мая 2025 06:51:53
|
|
* Version: 1.0.7
|
|
*/
|
|
|
|
using FileSearch.Logic.Model.Engine;
|
|
|
|
namespace FileSearch.Logic.Model.CriterionSchemas
|
|
{
|
|
internal class AttributeCriterion : CriterionBase, ICriterion
|
|
{
|
|
private readonly FileAttributes _includedAttributes;
|
|
private readonly FileAttributes _excludedAttributes;
|
|
|
|
public AttributeCriterion(FileAttributes includedAttributes, FileAttributes excludedAttributes)
|
|
{
|
|
_includedAttributes = includedAttributes;
|
|
_excludedAttributes = excludedAttributes;
|
|
}
|
|
|
|
public string Name { get { return "Attributes"; } }
|
|
|
|
public CriterionWeight Weight { get { return CriterionWeight.Medium; } }
|
|
|
|
public bool DirectorySupport { get { return true; } }
|
|
|
|
public bool FileSupport { get { return true; } }
|
|
|
|
public bool IsMatch(FileSystemInfo fileSystemInfo, ICriterionContext context)
|
|
{
|
|
return (fileSystemInfo.Attributes & _includedAttributes) == _includedAttributes
|
|
&& (fileSystemInfo.Attributes & _excludedAttributes) == 0;
|
|
}
|
|
}
|
|
}
|