fixed issue preventing drive contents from being read

pull/702/head
Luke Pulverenti 12 years ago
parent 82ce0e17e9
commit 826c749774

@ -391,8 +391,10 @@ namespace MediaBrowser.Controller.Entities
{ {
var paths = args.FileSystemDictionary.Keys.ToList(); var paths = args.FileSystemDictionary.Keys.ToList();
foreach (var subPath in paths.Where(subPath => paths.Any(i => subPath.StartsWith(i.TrimEnd(System.IO.Path.DirectorySeparatorChar) + System.IO.Path.DirectorySeparatorChar, StringComparison.OrdinalIgnoreCase)))) foreach (var subPath in paths
.Where(subPath => !subPath.EndsWith(":\\", StringComparison.OrdinalIgnoreCase) && paths.Any(i => subPath.StartsWith(i.TrimEnd(System.IO.Path.DirectorySeparatorChar) + System.IO.Path.DirectorySeparatorChar, StringComparison.OrdinalIgnoreCase))))
{ {
Logger.Info("Ignoring duplicate path: {0}", subPath);
args.FileSystemDictionary.Remove(subPath); args.FileSystemDictionary.Remove(subPath);
} }
} }

@ -3,7 +3,6 @@ using MediaBrowser.Model.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq;
namespace MediaBrowser.Controller.IO namespace MediaBrowser.Controller.IO
{ {
@ -41,28 +40,17 @@ namespace MediaBrowser.Controller.IO
if (resolveShortcuts && FileSystem.IsShortcut(entry.FullName)) if (resolveShortcuts && FileSystem.IsShortcut(entry.FullName))
{ {
var newPath = FileSystem.ResolveShortcut(entry.FullName); var newPath = FileSystem.ResolveShortcut(entry.FullName);
if (string.IsNullOrWhiteSpace(newPath)) if (string.IsNullOrWhiteSpace(newPath))
{ {
//invalid shortcut - could be old or target could just be unavailable //invalid shortcut - could be old or target could just be unavailable
logger.Warn("Encountered invalid shortuct: " + entry.FullName); logger.Warn("Encountered invalid shortcut: " + entry.FullName);
continue; continue;
} }
var data = FileSystem.GetFileSystemInfo(newPath);
if (data.Exists) var data = FileSystem.GetFileSystemInfo(newPath);
{
// Find out if the shortcut is pointing to a directory or file
if (data.Attributes.HasFlag(FileAttributes.Directory))
{
// add to our physical locations
if (args != null)
{
args.AddAdditionalLocation(newPath);
}
}
dict[data.FullName] = data; dict[data.FullName] = data;
}
} }
else if (flattenFolderDepth > 0 && isDirectory) else if (flattenFolderDepth > 0 && isDirectory)
{ {

@ -34,7 +34,7 @@ namespace MediaBrowser.Controller.IO
{ {
var fileInfo = new DirectoryInfo(path); var fileInfo = new DirectoryInfo(path);
if (fileInfo.Exists) if (fileInfo.Exists || path.EndsWith(":\\", StringComparison.OrdinalIgnoreCase))
{ {
return fileInfo; return fileInfo;
} }

Loading…
Cancel
Save