aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.LocalMetadata/Savers
diff options
context:
space:
mode:
authorBond_009 <bond.009@outlook.com>2021-10-03 19:52:38 +0200
committerBond_009 <bond.009@outlook.com>2021-10-03 19:52:38 +0200
commit9af16fcb6c892238b734c267873b1fc137d38e66 (patch)
treed6a954b0e41c988f55d1500e944c1fe5f2decf04 /MediaBrowser.LocalMetadata/Savers
parent9718c0b2eeb3ff2c2d0f613bfb51db6a025b0a07 (diff)
Remove workaround for dotnet/runtime#42790
Diffstat (limited to 'MediaBrowser.LocalMetadata/Savers')
-rw-r--r--MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs12
1 files changed, 10 insertions, 2 deletions
diff --git a/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs b/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs
index 6f66fd61b..5e7af23fc 100644
--- a/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs
+++ b/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs
@@ -113,11 +113,19 @@ namespace MediaBrowser.LocalMetadata.Savers
{
var directory = Path.GetDirectoryName(path) ?? throw new ArgumentException($"Provided path ({path}) is not valid.", nameof(path));
Directory.CreateDirectory(directory);
+
// On Windows, savint the file will fail if the file is hidden or readonly
FileSystem.SetAttributes(path, false, false);
- // use FileShare.None as this bypasses dotnet bug dotnet/runtime#42790 .
- using (var filestream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None))
+ var fileStreamOptions = new FileStreamOptions()
+ {
+ Mode = FileMode.Create,
+ Access = FileAccess.Write,
+ Share = FileShare.None,
+ PreallocationSize = stream.Length
+ };
+
+ using (var filestream = new FileStream(path, fileStreamOptions))
{
stream.CopyTo(filestream);
}