diff options
| author | Andrew Schurman <arcticwaters@gmail.com> | 2015-08-15 13:01:40 -0700 |
|---|---|---|
| committer | Andrew Schurman <arcticwaters@gmail.com> | 2015-08-15 13:35:43 -0700 |
| commit | 5571bf47367798f23d91c290ba75ef44672e027e (patch) | |
| tree | c75ac90bb2e70adc21da693b2e7e6b362133552d | |
| parent | ebd2f7b63d13bce6e5a30f8b37f89617bed44ff2 (diff) | |
Handle symlinks in library folders
| -rw-r--r-- | MediaBrowser.Api/EnvironmentService.cs | 4 | ||||
| -rw-r--r-- | 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 73b6573a6..457b4709b 100644 --- a/MediaBrowser.Api/EnvironmentService.cs +++ b/MediaBrowser.Api/EnvironmentService.cs @@ -221,7 +221,9 @@ namespace MediaBrowser.Api /// <returns>IEnumerable{FileSystemEntryInfo}.</returns> private IEnumerable<FileSystemEntryInfo> 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<FileSystemInfo>(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 9e549dcf3..79ffb0d01 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<FileSystemInfo>(new DirectoryInfo(path).EnumerateFiles("*", SearchOption.TopDirectoryOnly)); // Seeing dupes on some users file system for some reason foreach (var item in list) |
