diff options
Diffstat (limited to 'MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs')
| -rw-r--r-- | MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs b/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs index 9c76680c7..a1b7be906 100644 --- a/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs +++ b/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller.Entities; +using System.Text.RegularExpressions; +using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using System; using System.Collections.Generic; @@ -45,6 +46,20 @@ namespace MediaBrowser.Controller.Resolvers ".mts" }; + private static readonly Regex MultiFileRegex = new Regex( + @"(.*?)([ _.-]*(?:cd|dvd|p(?:ar)?t|dis[ck]|d)[ _.-]*[0-9]+)(.*?)(\.[^.]+)$", + RegexOptions.Compiled); + + /// <summary> + /// Determines whether [is multi part file] [the specified path]. + /// </summary> + /// <param name="path">The path.</param> + /// <returns><c>true</c> if [is multi part file] [the specified path]; otherwise, <c>false</c>.</returns> + public static bool IsMultiPartFile(string path) + { + return MultiFileRegex.Match(path).Success; + } + /// <summary> /// The audio file extensions /// </summary> @@ -96,7 +111,7 @@ namespace MediaBrowser.Controller.Resolvers } // See if a different path came out of the resolver than what went in - if (!args.Path.Equals(item.Path, StringComparison.OrdinalIgnoreCase)) + if (!string.Equals(args.Path, item.Path, StringComparison.OrdinalIgnoreCase)) { var childData = args.IsDirectory ? args.GetFileSystemEntryByPath(item.Path) : null; |
