aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Providers/IDirectoryService.cs
blob: 3a943d5f0cf5db6e4cdabbbb6f79c50f3f82fa0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#pragma warning disable CA1002, CA1819, CS1591

using System.Collections.Generic;
using MediaBrowser.Model.IO;

namespace MediaBrowser.Controller.Providers
{
    public interface IDirectoryService
    {
        FileSystemMetadata[] GetFileSystemEntries(string path);

        List<FileSystemMetadata> GetDirectories(string path);

        List<FileSystemMetadata> GetFiles(string path);

        FileSystemMetadata? GetFile(string path);

        FileSystemMetadata? GetDirectory(string path);

        FileSystemMetadata? GetFileSystemEntry(string path);

        IReadOnlyList<string> GetFilePaths(string path);

        IReadOnlyList<string> GetFilePaths(string path, bool clearCache);

        /// <summary>
        /// Forgets what is cached about a path and about the directory containing it.
        /// </summary>
        /// <param name="path">The file or directory path that changed.</param>
        void Invalidate(string path);

        /// <summary>
        /// Moves a directory and forgets what is cached about both paths.
        /// </summary>
        /// <param name="source">The directory to move.</param>
        /// <param name="destination">The path to move the directory to.</param>
        void Move(string source, string destination);

        bool IsAccessible(string path);
    }
}