diff options
| author | stefan <stefan@hegedues.at> | 2018-09-12 19:26:21 +0200 |
|---|---|---|
| committer | stefan <stefan@hegedues.at> | 2018-09-12 19:26:21 +0200 |
| commit | 48facb797ed912e4ea6b04b17d1ff190ac2daac4 (patch) | |
| tree | 8dae77a31670a888d733484cb17dd4077d5444e8 /MediaBrowser.Controller/IO | |
| parent | c32d8656382a0eacb301692e0084377fc433ae9b (diff) | |
Update to 3.5.2 and .net core 2.1
Diffstat (limited to 'MediaBrowser.Controller/IO')
| -rw-r--r-- | MediaBrowser.Controller/IO/FileData.cs | 122 | ||||
| -rw-r--r-- | MediaBrowser.Controller/IO/StreamHelper.cs | 50 |
2 files changed, 0 insertions, 172 deletions
diff --git a/MediaBrowser.Controller/IO/FileData.cs b/MediaBrowser.Controller/IO/FileData.cs deleted file mode 100644 index 880b3a0ce..000000000 --- a/MediaBrowser.Controller/IO/FileData.cs +++ /dev/null @@ -1,122 +0,0 @@ -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Logging; -using System; -using System.Collections.Generic; -using MediaBrowser.Model.IO; - -namespace MediaBrowser.Controller.IO -{ - /// <summary> - /// Provides low level File access that is much faster than the File/Directory api's - /// </summary> - public static class FileData - { - private static Dictionary<string, FileSystemMetadata> GetFileSystemDictionary(FileSystemMetadata[] list) - { - var dict = new Dictionary<string, FileSystemMetadata>(StringComparer.OrdinalIgnoreCase); - - foreach (var file in list) - { - dict[file.FullName] = file; - } - return dict; - } - - /// <summary> - /// Gets the filtered file system entries. - /// </summary> - /// <param name="directoryService">The directory service.</param> - /// <param name="path">The path.</param> - /// <param name="fileSystem">The file system.</param> - /// <param name="logger">The logger.</param> - /// <param name="args">The args.</param> - /// <param name="flattenFolderDepth">The flatten folder depth.</param> - /// <param name="resolveShortcuts">if set to <c>true</c> [resolve shortcuts].</param> - /// <returns>Dictionary{System.StringFileSystemInfo}.</returns> - /// <exception cref="System.ArgumentNullException">path</exception> - public static FileSystemMetadata[] GetFilteredFileSystemEntries(IDirectoryService directoryService, - string path, - IFileSystem fileSystem, - ILogger logger, - ItemResolveArgs args, - int flattenFolderDepth = 0, - bool resolveShortcuts = true) - { - if (string.IsNullOrEmpty(path)) - { - throw new ArgumentNullException("path"); - } - if (args == null) - { - throw new ArgumentNullException("args"); - } - - var entries = directoryService.GetFileSystemEntries(path); - - if (!resolveShortcuts && flattenFolderDepth == 0) - { - return entries; - } - - var dict = new Dictionary<string, FileSystemMetadata>(StringComparer.OrdinalIgnoreCase); - - foreach (var entry in entries) - { - var isDirectory = entry.IsDirectory; - - var fullName = entry.FullName; - - if (resolveShortcuts && fileSystem.IsShortcut(fullName)) - { - try - { - var newPath = fileSystem.ResolveShortcut(fullName); - - if (string.IsNullOrWhiteSpace(newPath)) - { - //invalid shortcut - could be old or target could just be unavailable - logger.Warn("Encountered invalid shortcut: " + fullName); - continue; - } - - // Don't check if it exists here because that could return false for network shares. - var data = fileSystem.GetDirectoryInfo(newPath); - - // add to our physical locations - args.AddAdditionalLocation(newPath); - - dict[newPath] = data; - } - catch (Exception ex) - { - logger.ErrorException("Error resolving shortcut from {0}", ex, fullName); - } - } - else if (flattenFolderDepth > 0 && isDirectory) - { - foreach (var child in GetFilteredFileSystemEntries(directoryService, fullName, fileSystem, logger, args, flattenFolderDepth: flattenFolderDepth - 1, resolveShortcuts: resolveShortcuts)) - { - dict[child.FullName] = child; - } - } - else - { - dict[fullName] = entry; - } - } - - var returnResult = new FileSystemMetadata[dict.Count]; - var index = 0; - var values = dict.Values; - foreach (var value in values) - { - returnResult[index] = value; - index++; - } - return returnResult; - } - - } - -} diff --git a/MediaBrowser.Controller/IO/StreamHelper.cs b/MediaBrowser.Controller/IO/StreamHelper.cs deleted file mode 100644 index 5aec9a182..000000000 --- a/MediaBrowser.Controller/IO/StreamHelper.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System.IO; -using System.Threading; -using System; -using System.Threading.Tasks; - -namespace MediaBrowser.Controller.IO -{ - public static class StreamHelper - { - public static void CopyTo(Stream source, Stream destination, int bufferSize, Action onStarted, CancellationToken cancellationToken) - { - byte[] buffer = new byte[bufferSize]; - int read; - while ((read = source.Read(buffer, 0, buffer.Length)) != 0) - { - cancellationToken.ThrowIfCancellationRequested(); - - destination.Write(buffer, 0, read); - - if (onStarted != null) - { - onStarted(); - onStarted = null; - } - } - } - - public static async Task CopyToAsync(Stream source, Stream destination, int bufferSize, IProgress<double> progress, long contentLength, CancellationToken cancellationToken) - { - byte[] buffer = new byte[bufferSize]; - int read; - long totalRead = 0; - - while ((read = source.Read(buffer, 0, buffer.Length)) != 0) - { - cancellationToken.ThrowIfCancellationRequested(); - - destination.Write(buffer, 0, read); - - totalRead += read; - - double pct = totalRead; - pct /= contentLength; - pct *= 100; - - progress.Report(pct); - } - } - } -} |
