diff options
| author | Bond_009 <bond.009@outlook.com> | 2020-01-10 21:16:46 +0100 |
|---|---|---|
| committer | Bond_009 <bond.009@outlook.com> | 2020-01-10 21:16:46 +0100 |
| commit | e714b9930ef27e5a1ea870e04e2241eb7cf1fce0 (patch) | |
| tree | 95503cad3bea14e88c2030e3764fa3910fdd2d67 /MediaBrowser.MediaEncoding/BdInfo/BdInfoDirectoryInfo.cs | |
| parent | 5cab79c839d2212ae638db403ec4d7ba0699f9a1 (diff) | |
| parent | 162c1ac7b7fde0e4929cf262b0f275e3eb15524c (diff) | |
Merge branch 'master' into embytv
Diffstat (limited to 'MediaBrowser.MediaEncoding/BdInfo/BdInfoDirectoryInfo.cs')
| -rw-r--r-- | MediaBrowser.MediaEncoding/BdInfo/BdInfoDirectoryInfo.cs | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/MediaBrowser.MediaEncoding/BdInfo/BdInfoDirectoryInfo.cs b/MediaBrowser.MediaEncoding/BdInfo/BdInfoDirectoryInfo.cs new file mode 100644 index 0000000000..91c8b27925 --- /dev/null +++ b/MediaBrowser.MediaEncoding/BdInfo/BdInfoDirectoryInfo.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using BDInfo.IO; +using MediaBrowser.Model.IO; + +namespace MediaBrowser.MediaEncoding.BdInfo +{ + class BdInfoDirectoryInfo : BDInfo.IO.IDirectoryInfo + { + IFileSystem _fileSystem = null; + + FileSystemMetadata _impl = null; + + public string Name => _impl.Name; + + public string FullName => _impl.FullName; + + public IDirectoryInfo Parent + { + get + { + var parentFolder = System.IO.Path.GetDirectoryName(_impl.FullName); + if (parentFolder != null) + { + return new BdInfoDirectoryInfo(_fileSystem, parentFolder); + } + return null; + } + } + + public BdInfoDirectoryInfo(IFileSystem fileSystem, string path) + { + _fileSystem = fileSystem; + _impl = _fileSystem.GetDirectoryInfo(path); + } + + private BdInfoDirectoryInfo(IFileSystem fileSystem, FileSystemMetadata impl) + { + _fileSystem = fileSystem; + _impl = impl; + } + + public IDirectoryInfo[] GetDirectories() + { + return Array.ConvertAll(_fileSystem.GetDirectories(_impl.FullName).ToArray(), + x => new BdInfoDirectoryInfo(_fileSystem, x)); + } + + public IFileInfo[] GetFiles() + { + return Array.ConvertAll(_fileSystem.GetFiles(_impl.FullName).ToArray(), + x => new BdInfoFileInfo(_fileSystem, x)); + } + + public IFileInfo[] GetFiles(string searchPattern) + { + return Array.ConvertAll(_fileSystem.GetFiles(_impl.FullName, new[] { searchPattern }, false, false).ToArray(), + x => new BdInfoFileInfo(_fileSystem, x)); + } + + public IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) + { + return Array.ConvertAll(_fileSystem.GetFiles(_impl.FullName, new[] { searchPattern }, false, + searchOption.HasFlag(System.IO.SearchOption.AllDirectories)).ToArray(), + x => new BdInfoFileInfo(_fileSystem, x)); + } + + public static IDirectoryInfo FromFileSystemPath(Model.IO.IFileSystem fs, string path) + { + return new BdInfoDirectoryInfo(fs, path); + } + } +} |
