From 5571bf47367798f23d91c290ba75ef44672e027e Mon Sep 17 00:00:00 2001 From: Andrew Schurman Date: Sat, 15 Aug 2015 13:01:40 -0700 Subject: [PATCH] Handle symlinks in library folders --- MediaBrowser.Api/EnvironmentService.cs | 4 +++- MediaBrowser.Controller/Providers/DirectoryService.cs | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/MediaBrowser.Api/EnvironmentService.cs b/MediaBrowser.Api/EnvironmentService.cs index 73b6573a6c..457b4709bf 100644 --- a/MediaBrowser.Api/EnvironmentService.cs +++ b/MediaBrowser.Api/EnvironmentService.cs @@ -221,7 +221,9 @@ namespace MediaBrowser.Api /// IEnumerable{FileSystemEntryInfo}. private IEnumerable GetFileSystemEntries(GetDirectoryContents request) { - var entries = new DirectoryInfo(request.Path).EnumerateFileSystemInfos().Where(i => + // using EnumerateFileSystemInfos doesn't handle reparse points (symlinks) + var entries = new DirectoryInfo(request.Path).EnumerateDirectories("*", SearchOption.TopDirectoryOnly) + .Concat(new DirectoryInfo(request.Path).EnumerateFiles("*", SearchOption.TopDirectoryOnly)).Where(i => { if (!request.IncludeHidden && i.Attributes.HasFlag(FileAttributes.Hidden)) { diff --git a/MediaBrowser.Controller/Providers/DirectoryService.cs b/MediaBrowser.Controller/Providers/DirectoryService.cs index 9e549dcf3f..79ffb0d01f 100644 --- a/MediaBrowser.Controller/Providers/DirectoryService.cs +++ b/MediaBrowser.Controller/Providers/DirectoryService.cs @@ -58,8 +58,9 @@ namespace MediaBrowser.Controller.Providers try { - var list = new DirectoryInfo(path) - .EnumerateFileSystemInfos("*", SearchOption.TopDirectoryOnly); + // using EnumerateFileSystemInfos doesn't handle reparse points (symlinks) + var list = new DirectoryInfo(path).EnumerateDirectories("*", SearchOption.TopDirectoryOnly) + .Concat(new DirectoryInfo(path).EnumerateFiles("*", SearchOption.TopDirectoryOnly)); // Seeing dupes on some users file system for some reason foreach (var item in list)