AcTools.Utils.FileUtils.CouldBeRenamedFile C# (CSharp) Метод

CouldBeRenamedFile() приватный статический Метод

private static CouldBeRenamedFile ( string baseDirectory, string original, string candidate ) : bool
baseDirectory string
original string
candidate string
Результат bool
        private static bool CouldBeRenamedFile(string baseDirectory, string original, string candidate) {
            if (!original.StartsWith(baseDirectory) && !candidate.StartsWith(baseDirectory) || original == candidate) return false;

            var originalDirectory = Path.GetDirectoryName(original);
            var candidateDirectory = Path.GetDirectoryName(candidate);
            if (originalDirectory != candidateDirectory &&
                !CouldBeRenamedFile(baseDirectory, originalDirectory, candidateDirectory)) return false;

            var originalFile = Path.GetFileName(original);
            var candidateFile = Path.GetFileName(candidate);

            if (candidateFile == null) return false;

            // if it pass init test (==) and pass here, must be renamed directory
            if (originalFile == candidateFile) return true;

            if (candidateFile.Contains(originalFile)) return true;

            for (var i = 0; i < originalFile.Length * 0.3; i++) {
                if (candidateFile.Contains(originalFile.Substring(i)) ||
                    candidateFile.Contains(originalFile.Substring(0, originalFile.Length - i))) return true;
            }

            return false;
        }
    }