Mp3TagLib.Tager.ValidateFileName C# (CSharp) Method

ValidateFileName() public method

public ValidateFileName ( Mask mask ) : bool
mask Mask
return bool
        public bool ValidateFileName(Mask mask)
        {
            try
            {
                var posibleTagValuesFromName = mask.GetTagValuesFromString(_currentFile.Name);
                var tagsFromFile = _currentFile.GetTags();
                var fileNameIsOk = false;

                foreach (var tagValues in posibleTagValuesFromName)
                {
                    if (fileNameIsOk)
                        break;

                    foreach (var tagValue in tagValues)
                    {
                        var currentTagFromFile = tagsFromFile.GetTag(tagValue.Key);

                        if (tagValue.Value != currentTagFromFile)
                        {
                            if (tagValue.Key == "track" && tagValue.Value.StartsWith("0"))
                            {
                                if (tagValue.Value.Substring(1) == currentTagFromFile)
                                    continue;
                            }
                            fileNameIsOk = false;
                            break;
                        }
                        fileNameIsOk = true;
                    }
                }
                return fileNameIsOk;
            }
            catch
            {
                return false;
            }
        }

Usage Example

Example #1
0
 public void Analyze(IEnumerable <string> paths, Mask mask)
 {
     foreach (var path in Filtrate(paths))
     {
         if (_tager.Load(path))
         {
             if (!_tager.ValidateFileName(mask))
             {
                 NotSynchronizedFiles.Add(_tager.CurrentFile, GetFileInfo(mask));
             }
             else
             {
                 SynchronizedFiles.Add(_tager.CurrentFile);
             }
         }
         else
         {
             ErrorFiles.Add(path, "load error");
         }
     }
 }