diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index 4cdc4657e3..04d42e16f3 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -702,7 +702,7 @@ namespace MediaBrowser.Controller.Entities
///
/// The path.
/// true if the specified path is offline; otherwise, false.
- private bool IsPathOffline(string path)
+ public static bool IsPathOffline(string path)
{
if (FileSystem.FileExists(path))
{
@@ -736,12 +736,12 @@ namespace MediaBrowser.Controller.Entities
/// The folders.
/// The path.
/// true if the specified folders contains path; otherwise, false.
- private bool ContainsPath(IEnumerable folders, string path)
+ private static bool ContainsPath(IEnumerable folders, string path)
{
return folders.SelectMany(i => i.Locations).Any(i => ContainsPath(i, path));
}
- private bool ContainsPath(string parent, string path)
+ private static bool ContainsPath(string parent, string path)
{
return string.Equals(parent, path, StringComparison.OrdinalIgnoreCase) || FileSystem.ContainsSubPath(parent, path);
}
diff --git a/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs b/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs
index c9f7165cb5..709ed5ec9a 100644
--- a/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs
+++ b/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs
@@ -184,15 +184,24 @@ namespace MediaBrowser.Server.Implementations.Persistence
try
{
- if (!_fileSystem.FileExists(path) && !_fileSystem.DirectoryExists(path))
+ if (_fileSystem.FileExists(path) || _fileSystem.DirectoryExists(path))
{
- var libraryItem = _libraryManager.GetItemById(item.Item1);
+ continue;
+ }
+
+ var libraryItem = _libraryManager.GetItemById(item.Item1);
- await _libraryManager.DeleteItem(libraryItem, new DeleteOptions
- {
- DeleteFileLocation = false
- });
+ if (Folder.IsPathOffline(path))
+ {
+ libraryItem.IsOffline = true;
+ await libraryItem.UpdateToRepository(ItemUpdateType.None, cancellationToken).ConfigureAwait(false);
+ continue;
}
+
+ await _libraryManager.DeleteItem(libraryItem, new DeleteOptions
+ {
+ DeleteFileLocation = false
+ });
}
catch (OperationCanceledException)
{