diff options
| author | Luke <luke.pulverenti@gmail.com> | 2015-08-15 16:41:19 -0400 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2015-08-15 16:41:19 -0400 |
| commit | 8e4c9940ee13cb81e0ea8da2b867b517bedc59ec (patch) | |
| tree | 9e5be861756658ce5ab136c9e26984350ca955fa | |
| parent | d685925bbbfbe82367eff0122301a2ef130f0478 (diff) | |
| parent | 5571bf47367798f23d91c290ba75ef44672e027e (diff) | |
Merge pull request #1155 from arcticwaters/symlinks
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) |
