[FileTypes] Add "hashing" defaults

This commit is contained in:
Matt Nadareski
2018-02-23 11:56:18 -08:00
parent 232001e404
commit 56df4418b4
13 changed files with 72 additions and 46 deletions

View File

@@ -34,8 +34,9 @@ namespace SabreTools.Library.FileTypes
/// Create a new Archive from the given file
/// </summary>
/// <param name="filename">Name of the file to use as an archive</param>
public BaseArchive(string filename)
: base(filename)
/// <param name="getHashes">True if hashes for this file should be calculated, false otherwise (default)</param>
public BaseArchive(string filename, bool getHashes = false)
: base(filename, getHashes)
{
}

View File

@@ -102,21 +102,26 @@ namespace SabreTools.Library.FileTypes
/// Create a new BaseFile from the given file
/// </summary>
/// <param name="filename">Name of the file to use</param>
public BaseFile(string filename)
/// <param name="getHashes">True if hashes for this file should be calculated (default), false otherwise</param>
public BaseFile(string filename, bool getHashes = true)
{
this._filename = filename;
BaseFile temp = Utilities.GetFileInfo(_filename);
if (temp != null)
if (getHashes)
{
this._parent = temp.Parent;
this._date = temp.Date;
this._crc = temp.CRC;
this._md5 = temp.MD5;
this._sha1 = temp.SHA1;
this._sha256 = temp.SHA256;
this._sha384 = temp.SHA384;
this._sha512 = temp.SHA512;
BaseFile temp = Utilities.GetFileInfo(_filename);
if (temp != null)
{
this._parent = temp.Parent;
this._date = temp.Date;
this._crc = temp.CRC;
this._md5 = temp.MD5;
this._sha1 = temp.SHA1;
this._sha256 = temp.SHA256;
this._sha384 = temp.SHA384;
this._sha512 = temp.SHA512;
}
}
}
@@ -125,19 +130,28 @@ namespace SabreTools.Library.FileTypes
/// </summary>
/// <param name="filename">Name of the file to use</param>
/// <param name="stream">Stream to populate information from</param>
public BaseFile(string filename, Stream stream)
/// <param name="getHashes">True if hashes for this file should be calculated (default), false otherwise</param>
public BaseFile(string filename, Stream stream, bool getHashes = true)
{
BaseFile temp = Utilities.GetStreamInfo(stream, stream.Length);
this._filename = filename;
this._parent = temp.Parent;
this._date = temp.Date;
this._crc = temp.CRC;
this._md5 = temp.MD5;
this._sha1 = temp.SHA1;
this._sha256 = temp.SHA256;
this._sha384 = temp.SHA384;
this._sha512 = temp.SHA512;
if (getHashes)
{
BaseFile temp = Utilities.GetStreamInfo(stream, stream.Length);
if(temp != null)
{
this._parent = temp.Parent;
this._date = temp.Date;
this._crc = temp.CRC;
this._md5 = temp.MD5;
this._sha1 = temp.SHA1;
this._sha256 = temp.SHA256;
this._sha384 = temp.SHA384;
this._sha512 = temp.SHA512;
}
}
}
#endregion

View File

@@ -50,8 +50,9 @@ namespace SabreTools.Library.FileTypes
/// </summary>
/// <param name="filename">Name of the file to use as an archive</param>
/// <param name="read">True for opening file as read, false for opening file as write</param>
public Folder(string filename)
: base(filename)
/// <param name="getHashes">True if hashes for this file should be calculated, false otherwise (default)</param>
public Folder(string filename, bool getHashes = false)
: base(filename, getHashes)
{
_fileType = FileType.Folder;
}

View File

@@ -45,8 +45,9 @@ namespace SabreTools.Library.FileTypes
/// </summary>
/// <param name="filename">Name of the file to use as an archive</param>
/// <param name="read">True for opening file as read, false for opening file as write</param>
public GZipArchive(string filename)
: base(filename)
/// <param name="getHashes">True if hashes for this file should be calculated, false otherwise (default)</param>
public GZipArchive(string filename, bool getHashes = false)
: base(filename, getHashes)
{
_fileType = FileType.GZipArchive;
}

View File

@@ -34,8 +34,9 @@ namespace SabreTools.Library.FileTypes
/// Create a new LRZipArchive from the given file
/// </summary>
/// <param name="filename">Name of the file to use as an archive</param>
public LRZipArchive(string filename)
: base(filename)
/// <param name="getHashes">True if hashes for this file should be calculated, false otherwise (default)</param>
public LRZipArchive(string filename, bool getHashes = false)
: base(filename, getHashes)
{
_fileType = FileType.LRZipArchive;
}

View File

@@ -34,8 +34,9 @@ namespace SabreTools.Library.FileTypes
/// Create a new LZ4Archive from the given file
/// </summary>
/// <param name="filename">Name of the file to use as an archive</param>
public LZ4Archive(string filename)
: base(filename)
/// <param name="getHashes">True if hashes for this file should be calculated, false otherwise (default)</param>
public LZ4Archive(string filename, bool getHashes = false)
: base(filename, getHashes)
{
_fileType = FileType.LZ4Archive;
}

View File

@@ -45,8 +45,9 @@ namespace SabreTools.Library.FileTypes
/// </summary>
/// <param name="filename">Name of the file to use as an archive</param>
/// <param name="read">True for opening file as read, false for opening file as write</param>
public RarArchive(string filename)
: base(filename)
/// <param name="getHashes">True if hashes for this file should be calculated, false otherwise (default)</param>
public RarArchive(string filename, bool getHashes = false)
: base(filename, getHashes)
{
_fileType = FileType.RarArchive;
}

View File

@@ -48,8 +48,9 @@ namespace SabreTools.Library.FileTypes
/// </summary>
/// <param name="filename">Name of the file to use as an archive</param>
/// <param name="read">True for opening file as read, false for opening file as write</param>
public SevenZipArchive(string filename)
: base(filename)
/// <param name="getHashes">True if hashes for this file should be calculated, false otherwise (default)</param>
public SevenZipArchive(string filename, bool getHashes = false)
: base(filename, getHashes)
{
_fileType = FileType.SevenZipArchive;
}

View File

@@ -48,8 +48,9 @@ namespace SabreTools.Library.FileTypes
/// </summary>
/// <param name="filename">Name of the file to use as an archive</param>
/// <param name="read">True for opening file as read, false for opening file as write</param>
public TapeArchive(string filename)
: base(filename)
/// <param name="getHashes">True if hashes for this file should be calculated, false otherwise (default)</param>
public TapeArchive(string filename, bool getHashes = false)
: base(filename, getHashes)
{
_fileType = FileType.TapeArchive;
}

View File

@@ -44,8 +44,9 @@ namespace SabreTools.Library.FileTypes
/// </summary>
/// <param name="filename">Name of the file to use as an archive</param>
/// <param name="read">True for opening file as read, false for opening file as write</param>
public TorrentZipArchive(string filename)
: base(filename)
/// <param name="getHashes">True if hashes for this file should be calculated, false otherwise (default)</param>
public TorrentZipArchive(string filename, bool getHashes = false)
: base(filename, getHashes)
{
_fileType = FileType.ZipArchive;
}

View File

@@ -48,8 +48,9 @@ namespace SabreTools.Library.FileTypes
/// </summary>
/// <param name="filename">Name of the file to use as an archive</param>
/// <param name="read">True for opening file as read, false for opening file as write</param>
public XZArchive(string filename)
: base(filename)
/// <param name="getHashes">True if hashes for this file should be calculated, false otherwise (default)</param>
public XZArchive(string filename, bool getHashes = false)
: base(filename, getHashes)
{
_fileType = FileType.XZArchive;
}

View File

@@ -34,8 +34,9 @@ namespace SabreTools.Library.FileTypes
/// Create a new ZPAQArchive from the given file
/// </summary>
/// <param name="filename">Name of the file to use as an archive</param>
public ZPAQArchive(string filename)
: base(filename)
/// <param name="getHashes">True if hashes for this file should be calculated, false otherwise (default)</param>
public ZPAQArchive(string filename, bool getHashes = false)
: base(filename, getHashes)
{
_fileType = FileType.ZPAQArchive;
}

View File

@@ -34,8 +34,9 @@ namespace SabreTools.Library.FileTypes
/// Create a new ZstdArchive from the given file
/// </summary>
/// <param name="filename">Name of the file to use as an archive</param>
public ZstdArchive(string filename)
: base(filename)
/// <param name="getHashes">True if hashes for this file should be calculated, false otherwise (default)</param>
public ZstdArchive(string filename, bool getHashes)
: base(filename, getHashes)
{
_fileType = FileType.ZstdArchive;
}