CommandCreation.MaskParser.ValidateFileName C# (CSharp) Method

ValidateFileName() public method

public ValidateFileName ( string fileName ) : bool
fileName string
return bool
        public bool ValidateFileName(string fileName)
        {
            // Ambiguous matching of mask and file name.
            for (var i = 1; i < _splits.Count - 1; i++)
            {
                if (_splits[i] == String.Empty)
                    throw new InvalidDataException("Ambiguous matching of mask and file name");
            }
            // Ambiguous matching of mask and file name.
            if (
                _splits.Any(
                    split => split != String.Empty && CountSplitsInMask(split) < CountSplitsInFileName(split, fileName)))
            {
                throw new InvalidDataException("Ambiguous matching of mask and file name");
            }

            // Validation with regex
            var regexPattern = new StringBuilder();
            for (var i = 0; i < _splits.Count; i++)
            {
                regexPattern.Append(ConvertForRegex(_splits[i])
                    + (i != _splits.Count - 1 ? ".*" : "$"));
            }

            var regex = new Regex(regexPattern.ToString());
            return regex.IsMatch(@fileName);
        }

Usage Example

Ejemplo n.º 1
0
        private void ChangeTags()
        {
            var fileName = Path.GetFileNameWithoutExtension(File.FullName);

            if (!_maskParser.ValidateFileName(fileName))
            {
                throw new InvalidDataException("Mask doesn't match the file name.");
            }

            var tagPatternsInMask = _maskParser.GetTags();
            var splitsInMask      = _maskParser.GetSplits();

            fileName = fileName.Remove(0, splitsInMask[0].Length); // Remove first split
            for (var i = 0; i < splitsInMask.Count - 1; i++)
            {
                var indexOfSplit = splitsInMask[i + 1] != String.Empty
                    ? fileName.IndexOf(splitsInMask[i + 1], StringComparison.Ordinal)
                    : fileName.Length;
                var tagValueInFileName = fileName.Substring(0, indexOfSplit);

                ChangeTag(tagPatternsInMask[i], tagValueInFileName);

                fileName = fileName.Remove(0, indexOfSplit + splitsInMask[i + 1].Length);
            }
        }
All Usage Examples Of CommandCreation.MaskParser::ValidateFileName