mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-11-25 20:52:44 +01:00
Fixed problem with TarHeader...
This commit is contained in:
parent
9ce90aef2e
commit
c9cba9d373
@ -1,4 +1,5 @@
|
||||
using System.IO;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace Nikse.SubtitleEdit.Logic
|
||||
@ -7,42 +8,33 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
{
|
||||
public const int HeaderSize = 512;
|
||||
|
||||
public string FileName { get; set; }
|
||||
public long FileSizeInBytes { get; set; }
|
||||
public long FilePosition { get; set; }
|
||||
|
||||
private readonly Stream _stream;
|
||||
private readonly long _fileSizeInBytes;
|
||||
|
||||
public TarHeader(Stream stream)
|
||||
{
|
||||
_stream = stream;
|
||||
byte[] buffer = new byte[HeaderSize];
|
||||
var buffer = new byte[HeaderSize];
|
||||
stream.Read(buffer, 0, HeaderSize);
|
||||
FilePosition = stream.Position;
|
||||
|
||||
FileName = Encoding.ASCII.GetString(buffer, 0, 100).Replace("\0", string.Empty);
|
||||
if (!string.IsNullOrEmpty(FileName))
|
||||
{
|
||||
var sizeInBytes = Encoding.ASCII.GetString(buffer, 124, 11);
|
||||
long.TryParse(sizeInBytes, out _fileSizeInBytes);
|
||||
}
|
||||
}
|
||||
|
||||
public string FileName { get; set; }
|
||||
|
||||
public long FilePosition { get; set; }
|
||||
|
||||
public long FileSizeInBytes
|
||||
{
|
||||
get
|
||||
{
|
||||
return _fileSizeInBytes;
|
||||
}
|
||||
string sizeInBytes = Encoding.ASCII.GetString(buffer, 124, 11);
|
||||
if (!string.IsNullOrEmpty(FileName) && Utilities.IsInteger(sizeInBytes))
|
||||
FileSizeInBytes = Convert.ToInt64(sizeInBytes, 8);
|
||||
}
|
||||
|
||||
public void WriteData(string fileName)
|
||||
{
|
||||
var buffer = new byte[_fileSizeInBytes];
|
||||
var buffer = new byte[FileSizeInBytes];
|
||||
_stream.Position = FilePosition;
|
||||
_stream.Read(buffer, 0, buffer.Length);
|
||||
File.WriteAllBytes(fileName, buffer);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user