This commit is contained in:
Stanley Dimant
2024-04-28 12:59:37 +02:00
parent e7b72baa1e
commit 84730d21ea

View File

@@ -6,6 +6,7 @@ namespace MareSynchronosStaticFilesServer.Utils;
public sealed class BlockFileDataSubstream : IDisposable public sealed class BlockFileDataSubstream : IDisposable
{ {
private readonly MemoryStream _headerStream; private readonly MemoryStream _headerStream;
private readonly BinaryWriter _headerStreamWriter;
private readonly FileStream _dataStream; private readonly FileStream _dataStream;
private int _headerPosition = 0; private int _headerPosition = 0;
private long _dataPosition = 0; private long _dataPosition = 0;
@@ -17,9 +18,9 @@ public sealed class BlockFileDataSubstream : IDisposable
public BlockFileDataSubstream(FileStream dataStream) public BlockFileDataSubstream(FileStream dataStream)
{ {
_headerStream = new MemoryStream(); _headerStream = new MemoryStream();
using var headerStreamWriter = new BinaryWriter(_headerStream); _headerStreamWriter = new BinaryWriter(_headerStream);
headerStreamWriter.Write(Encoding.ASCII.GetBytes("#" + new FileInfo(dataStream.Name).Name + ":" + dataStream.Length.ToString(CultureInfo.InvariantCulture) + "#")); _headerStreamWriter.Write(Encoding.ASCII.GetBytes("#" + new FileInfo(dataStream.Name).Name + ":" + dataStream.Length.ToString(CultureInfo.InvariantCulture) + "#"));
headerStreamWriter.Flush(); _headerStreamWriter.Flush();
_headerStream.Position = 0; _headerStream.Position = 0;
_dataStream = dataStream; _dataStream = dataStream;
} }
@@ -67,6 +68,7 @@ public sealed class BlockFileDataSubstream : IDisposable
{ {
if (_disposed) return; if (_disposed) return;
_headerStream.Dispose(); _headerStream.Dispose();
_headerStreamWriter.Dispose();
_dataStream.Dispose(); _dataStream.Dispose();
_disposed = true; _disposed = true;
} }