diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-10 15:21:55 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-10 15:21:55 -0400 |
| commit | 6a740f7ea5aabc5647e49d651e28768bc05554dd (patch) | |
| tree | 9734e72719d3202cc08d9ccd0ae73517611ce1b5 | |
| parent | 1b75668d000e9c3d5e8b716b75377393f52bc6b6 (diff) | |
fixes #255 - Access to the path is denied
| -rw-r--r-- | MediaBrowser.Controller/Entities/BaseItem.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Controller/IO/FileData.cs | 3 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Providers/ProviderManager.cs | 8 |
3 files changed, 4 insertions, 11 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 43c629505..9f02fdc90 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -269,7 +269,9 @@ namespace MediaBrowser.Controller.Entities // Record the name of each file // Need to sort these because accoring to msdn docs, our i/o methods are not guaranteed in any order - foreach (var file in ResolveArgs.FileSystemChildren.OrderBy(f => f.Name)) + foreach (var file in ResolveArgs.FileSystemChildren + .Where(i => !i.Attributes.HasFlag(FileAttributes.System)) + .OrderBy(f => f.Name)) { sb.Append(file.Name); } diff --git a/MediaBrowser.Controller/IO/FileData.cs b/MediaBrowser.Controller/IO/FileData.cs index 3f15d8ddb..4b5aed3ab 100644 --- a/MediaBrowser.Controller/IO/FileData.cs +++ b/MediaBrowser.Controller/IO/FileData.cs @@ -32,8 +32,7 @@ namespace MediaBrowser.Controller.IO var dict = new Dictionary<string, FileSystemInfo>(StringComparer.OrdinalIgnoreCase); - var entries = new DirectoryInfo(path).EnumerateFileSystemInfos(searchPattern, SearchOption.TopDirectoryOnly) - .Where(i => !i.Attributes.HasFlag(FileAttributes.System) && !i.Name.Equals(".") && !i.Name.Equals("..")); + var entries = new DirectoryInfo(path).EnumerateFileSystemInfos(searchPattern, SearchOption.TopDirectoryOnly); foreach (var entry in entries) { diff --git a/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs b/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs index 5dfa31b09..b0a0f8760 100644 --- a/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs +++ b/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs @@ -470,14 +470,6 @@ namespace MediaBrowser.Server.Implementations.Providers { using (dataToSave) { - // If the file already exists but is hidden, the below save will throw an UnauthorizedAccessException - var existingFileInfo = new FileInfo(path); - - if (existingFileInfo.Exists && existingFileInfo.Attributes.HasFlag(FileAttributes.Hidden)) - { - existingFileInfo.Delete(); - } - using (var fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read, StreamDefaults.DefaultFileStreamBufferSize, FileOptions.Asynchronous)) { await dataToSave.CopyToAsync(fs, StreamDefaults.DefaultCopyToBufferSize, cancellationToken).ConfigureAwait(false); |
