Enable nullability everywhere

This commit is contained in:
Matt Nadareski
2024-02-28 19:19:50 -05:00
parent 11d024bd16
commit 823a9ca7b7
145 changed files with 1545 additions and 1260 deletions

View File

@@ -13,9 +13,9 @@ namespace Compress.ZipFile
{
private readonly List<ZipLocalFile> _localFiles = new();
private FileInfo _zipFileInfo;
private FileInfo? _zipFileInfo;
private Stream _zipFs;
private Stream? _zipFs;
private uint _localFilesCount;

View File

@@ -32,7 +32,7 @@ namespace Compress.ZipFile
{
}
internal ZipLocalFile(string filename, TimeStamps dateTime = null)
internal ZipLocalFile(string filename, TimeStamps? dateTime = null)
{
SetStatus(LocalFileStatus.Zip64, false);
GeneralPurposeBitFlag = 2; // Maximum Compression Deflating
@@ -231,8 +231,11 @@ namespace Compress.ZipFile
bw.Write(_extraField, 0, extraFieldLength);
// No File Comment
}
internal ZipReturn LocalFileHeaderRead(Stream zipFs)
internal ZipReturn LocalFileHeaderRead(Stream? zipFs)
{
if (zipFs == null)
return ZipReturn.ZipErrorFileNotFound;
try
{
using (BinaryReader br = new(zipFs, Encoding.UTF8, true))
@@ -358,8 +361,11 @@ namespace Compress.ZipFile
}
}
internal ZipReturn LocalFileHeaderReadQuick(Stream zipFs)
internal ZipReturn LocalFileHeaderReadQuick(Stream? zipFs)
{
if (zipFs == null)
return ZipReturn.ZipErrorOpeningFile;
try
{
using BinaryReader br = new(zipFs, Encoding.UTF8, true);
@@ -568,12 +574,16 @@ namespace Compress.ZipFile
bw.Write(_extraField);
}
internal ZipReturn LocalFileOpenReadStream(Stream zipFs, bool raw, out Stream readStream, out ulong streamSize, out ushort compressionMethod)
internal ZipReturn LocalFileOpenReadStream(Stream? zipFs, bool raw, out Stream? readStream, out ulong streamSize, out ushort compressionMethod)
{
streamSize = 0;
compressionMethod = _compressionMethod;
readStream = null;
if (zipFs == null)
return ZipReturn.ZipErrorFileNotFound;
zipFs.Seek((long)_dataLocation, SeekOrigin.Begin);
switch (_compressionMethod)
@@ -644,7 +654,7 @@ namespace Compress.ZipFile
return readStream == null ? ZipReturn.ZipErrorGettingDataStream : ZipReturn.ZipGood;
}
internal ZipReturn LocalFileOpenWriteStream(Stream zipFs, bool raw, ulong uncompressedSize, ushort compressionMethod, out Stream writeStream)
internal ZipReturn LocalFileOpenWriteStream(Stream? zipFs, bool raw, ulong uncompressedSize, ushort compressionMethod, out Stream? writeStream)
{
UncompressedSize = uncompressedSize;
_compressedSize = 0;
@@ -678,10 +688,10 @@ namespace Compress.ZipFile
return writeStream == null ? ZipReturn.ZipErrorGettingDataStream : ZipReturn.ZipGood;
}
internal ZipReturn LocalFileCloseWriteStream(Stream zipFs, byte[] crc32)
internal ZipReturn LocalFileCloseWriteStream(Stream? zipFs, byte[] crc32)
{
_compressedSize = (ulong)zipFs.Position - _dataLocation;
_compressedSize = (ulong)zipFs!.Position - _dataLocation;
if (_compressedSize == 0 && UncompressedSize == 0)
{
@@ -734,8 +744,11 @@ namespace Compress.ZipFile
}
}
internal static void LocalFileAddZeroLengthFile(Stream zipFs)
internal static void LocalFileAddZeroLengthFile(Stream? zipFs)
{
if (zipFs == null)
return;
zipFs.WriteByte(03);
zipFs.WriteByte(00);
}

View File

@@ -64,7 +64,7 @@ namespace Compress.ZipFile
}
public ZipReturn ZipFileOpen(Stream inStream)
public ZipReturn ZipFileOpen(Stream? inStream)
{
ZipFileClose();
ZipStatus = ZipStatus.None;

View File

@@ -4,12 +4,12 @@ namespace Compress.ZipFile
{
public partial class Zip
{
public ZipReturn ZipFileOpenReadStream(int index, out Stream stream, out ulong streamSize)
public ZipReturn ZipFileOpenReadStream(int index, out Stream? stream, out ulong streamSize)
{
return ZipFileOpenReadStream(index, false, out stream, out streamSize, out ushort _);
}
public ZipReturn ZipFileOpenReadStream(int index, bool raw, out Stream stream, out ulong streamSize, out ushort compressionMethod)
public ZipReturn ZipFileOpenReadStream(int index, bool raw, out Stream? stream, out ulong streamSize, out ushort compressionMethod)
{
ZipFileCloseReadStream();
@@ -33,7 +33,7 @@ namespace Compress.ZipFile
return zRet;
}
public ZipReturn ZipFileOpenReadStreamQuick(ulong pos, bool raw, out Stream stream, out ulong streamSize, out ushort compressionMethod)
public ZipReturn ZipFileOpenReadStreamQuick(ulong pos, bool raw, out Stream? stream, out ulong streamSize, out ushort compressionMethod)
{
ZipFileCloseReadStream();

View File

@@ -43,6 +43,9 @@ namespace Compress.ZipFile
{
bool lTrrntzip = true;
if (_zipFs == null)
return;
_centralDirStart = (ulong)_zipFs.Position;
using (CrcCalculatorStream crcCs = new CrcCalculatorStream(_zipFs, true))
@@ -79,7 +82,7 @@ namespace Compress.ZipFile
_zipFs.Flush();
_zipFs.Close();
_zipFs.Dispose();
_zipFileInfo = new FileInfo(_zipFileInfo.FullName);
_zipFileInfo = new FileInfo(_zipFileInfo?.FullName ?? string.Empty);
ZipOpen = ZipOpenType.Closed;
}
@@ -98,9 +101,9 @@ namespace Compress.ZipFile
}
break;
case ZipOpenType.OpenWrite:
_zipFs.Flush();
_zipFs.Close();
_zipFs.Dispose();
_zipFs?.Flush();
_zipFs?.Close();
_zipFs?.Dispose();
if (_zipFileInfo != null)
RVIO.File.Delete(_zipFileInfo.FullName);
_zipFileInfo = null;

View File

@@ -10,7 +10,7 @@ namespace Compress.ZipFile
{
public partial class Zip
{
private Stream _compressionStream;
private Stream? _compressionStream;
/*
raw is true if we are just going to copy the raw data stream from the source to the destination zip file
@@ -20,7 +20,7 @@ namespace Compress.ZipFile
if raw is false then compressionMthod must be 0,8 or 93 (zstd)
*/
public ZipReturn ZipFileOpenWriteStream(bool raw, bool trrntzip, string filename, ulong uncompressedSize, ushort compressionMethod, out Stream stream, TimeStamps timeStamp = null)
public ZipReturn ZipFileOpenWriteStream(bool raw, bool trrntzip, string filename, ulong uncompressedSize, ushort compressionMethod, out Stream? stream, TimeStamps? timeStamp = null)
{
stream = null;
if (ZipOpen != ZipOpenType.OpenWrite)
@@ -108,7 +108,7 @@ namespace Compress.ZipFile
}
_localFiles.RemoveAt(fileCount - 1);
_zipFs.Position = (long)_localFiles[fileCount - 1].RelativeOffsetOfLocalHeader;
_zipFs!.Position = (long)_localFiles[fileCount - 1].RelativeOffsetOfLocalHeader;
return ZipReturn.ZipGood;
}