소스 검색

fix bdinfo path

Luke Pulverenti 8 년 전
부모
커밋
e265d8efec
3개의 변경된 파일31개의 추가작업 그리고 3개의 파일을 삭제
  1. 21 3
      BDInfo/BDROM.cs
  2. 5 0
      MediaBrowser.MediaEncoding/BdInfo/BdInfoExaminer.cs
  3. 5 0
      MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs

+ 21 - 3
BDInfo/BDROM.cs

@@ -77,6 +77,11 @@ namespace BDInfo
         public BDROM(
             string path, IFileSystem fileSystem, ITextEncoding textEncoding)
         {
+            if (string.IsNullOrWhiteSpace(path))
+            {
+                throw new ArgumentNullException("path");
+            }
+
             _fileSystem = fileSystem;
             //
             // Locate BDMV directories.
@@ -326,15 +331,28 @@ namespace BDInfo
         private FileSystemMetadata GetDirectoryBDMV(
             string path)
         {
+            if (string.IsNullOrWhiteSpace(path))
+            {
+                throw new ArgumentNullException("path");
+            }
+
             FileSystemMetadata dir = _fileSystem.GetDirectoryInfo(path);
 
             while (dir != null)
             {
-                if (dir.Name == "BDMV")
+                if (string.Equals(dir.Name, "BDMV", StringComparison.OrdinalIgnoreCase))
                 {
                     return dir;
                 }
-                dir = _fileSystem.GetDirectoryInfo(Path.GetDirectoryName(dir.FullName));
+                var parentFolder = Path.GetDirectoryName(dir.FullName);
+                if (string.IsNullOrEmpty(parentFolder))
+                {
+                    dir = null;
+                }
+                else
+                {
+                    dir = _fileSystem.GetDirectoryInfo(parentFolder);
+                }
             }
 
             return GetDirectory("BDMV", _fileSystem.GetDirectoryInfo(path), 0);
@@ -350,7 +368,7 @@ namespace BDInfo
                 FileSystemMetadata[] children = _fileSystem.GetDirectories(dir.FullName).ToArray();
                 foreach (FileSystemMetadata child in children)
                 {
-                    if (child.Name == name)
+                    if (string.Equals(child.Name, name, StringComparison.OrdinalIgnoreCase))
                     {
                         return child;
                     }

+ 5 - 0
MediaBrowser.MediaEncoding/BdInfo/BdInfoExaminer.cs

@@ -30,6 +30,11 @@ namespace MediaBrowser.MediaEncoding.BdInfo
         /// <returns>BlurayDiscInfo.</returns>
         public BlurayDiscInfo GetDiscInfo(string path)
         {
+            if (string.IsNullOrWhiteSpace(path))
+            {
+                throw new ArgumentNullException("path");
+            }
+
             var bdrom = new BDROM(path, _fileSystem, _textEncoding);
 
             bdrom.Scan();

+ 5 - 0
MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs

@@ -328,6 +328,11 @@ namespace MediaBrowser.Providers.MediaInfo
         /// <returns>VideoStream.</returns>
         private BlurayDiscInfo GetBDInfo(string path)
         {
+            if (string.IsNullOrWhiteSpace(path))
+            {
+                throw new ArgumentNullException("path");
+            }
+
             try
             {
                 return _blurayExaminer.GetDiscInfo(path);