aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Providers/DirectoryService.cs16
-rw-r--r--MediaBrowser.Controller/Providers/IDirectoryService.cs4
2 files changed, 18 insertions, 2 deletions
diff --git a/MediaBrowser.Controller/Providers/DirectoryService.cs b/MediaBrowser.Controller/Providers/DirectoryService.cs
index 56b07ebae7..474f09dc5e 100644
--- a/MediaBrowser.Controller/Providers/DirectoryService.cs
+++ b/MediaBrowser.Controller/Providers/DirectoryService.cs
@@ -62,10 +62,22 @@ namespace MediaBrowser.Controller.Providers
public FileSystemMetadata? GetFile(string path)
{
+ var entry = GetFileSystemEntry(path);
+ return entry is not null && !entry.IsDirectory ? entry : null;
+ }
+
+ public FileSystemMetadata? GetDirectory(string path)
+ {
+ var entry = GetFileSystemEntry(path);
+ return entry is not null && entry.IsDirectory ? entry : null;
+ }
+
+ public FileSystemMetadata? GetFileSystemEntry(string path)
+ {
if (!_fileCache.TryGetValue(path, out var result))
{
- var file = _fileSystem.GetFileInfo(path);
- if (file.Exists)
+ var file = _fileSystem.GetFileSystemInfo(path);
+ if (file?.Exists ?? false)
{
result = file;
_fileCache.TryAdd(path, result);
diff --git a/MediaBrowser.Controller/Providers/IDirectoryService.cs b/MediaBrowser.Controller/Providers/IDirectoryService.cs
index a3c06cde53..1babf73af8 100644
--- a/MediaBrowser.Controller/Providers/IDirectoryService.cs
+++ b/MediaBrowser.Controller/Providers/IDirectoryService.cs
@@ -15,6 +15,10 @@ namespace MediaBrowser.Controller.Providers
FileSystemMetadata? GetFile(string path);
+ FileSystemMetadata? GetDirectory(string path);
+
+ FileSystemMetadata? GetFileSystemEntry(string path);
+
IReadOnlyList<string> GetFilePaths(string path);
IReadOnlyList<string> GetFilePaths(string path, bool clearCache, bool sort = false);