public static bool IsAffected([NotNull] string parent, [NotNull] string child) {
if (parent == null) throw new ArgumentNullException(nameof(parent));
if (child == null) throw new ArgumentNullException(nameof(child));
parent = parent.Replace(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar);
child = child.Replace(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar);
if (string.Equals(parent, child, StringComparison.OrdinalIgnoreCase)) return true;
var s = child.SubstringExt(parent.Length);
return s.Length > 0 && s[0] == Path.DirectorySeparatorChar;
}