diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index dff0203b9e..0104db305f 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -314,7 +314,15 @@ namespace MediaBrowser.Controller.Entities isDirectory = true; } - pathInfo = pathInfo ?? (isDirectory ? new DirectoryInfo(path) : FileSystem.GetFileSystemInfo(path)); + try + { + pathInfo = pathInfo ?? (isDirectory ? new DirectoryInfo(path) : FileSystem.GetFileSystemInfo(path)); + } + catch (IOException) + { + IsOffline = true; + throw; + } if (pathInfo == null || !pathInfo.Exists) { diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index e782717e91..8605c71257 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -646,7 +646,7 @@ namespace MediaBrowser.Controller.Entities cancellationToken.ThrowIfCancellationRequested(); //get the current valid children from filesystem (or wherever) - var nonCachedChildren = GetNonCachedChildren(); + var nonCachedChildren = IsOffline ? new BaseItem[] { } : GetNonCachedChildren(); if (nonCachedChildren == null) return; //nothing to validate @@ -722,6 +722,8 @@ namespace MediaBrowser.Controller.Entities else { item.IsOffline = true; + + validChildren.Add(new Tuple(item, false)); } }