91 references to TarHelpers
System.Formats.Tar (91)
System\Formats\Tar\GnuTarEntry.cs (2)
62
changedATime =
TarHelpers
.TryGetDateTimeOffsetFromTimestampString(paxOther._header.ExtendedAttributes, TarHeader.PaxEaATime, out DateTimeOffset aTime);
68
changedCTime =
TarHelpers
.TryGetDateTimeOffsetFromTimestampString(paxOther._header.ExtendedAttributes, TarHeader.PaxEaCTime, out DateTimeOffset cTime);
System\Formats\Tar\PaxTarEntry.cs (3)
125
_header.ExtendedAttributes[TarHeader.PaxEaATime] =
TarHelpers
.GetTimestampStringFromDateTimeOffset(gnuOther.AccessTime);
126
_header.ExtendedAttributes[TarHeader.PaxEaCTime] =
TarHelpers
.GetTimestampStringFromDateTimeOffset(gnuOther.ChangeTime);
167
string secondsFromEpochString =
TarHelpers
.GetTimestampStringFromDateTimeOffset(useMTime ? _header._mTime : DateTimeOffset.UtcNow);
System\Formats\Tar\TarEntry.cs (12)
42
TarHelpers
.ThrowIfEntryTypeNotSupported(entryType, format);
46
_header = new TarHeader(format, entryName,
TarHelpers
.GetDefaultMode(entryType), DateTimeOffset.UtcNow, entryType);
57
TarEntryType compatibleEntryType =
TarHelpers
.GetCorrectTypeFlagForFormat(format, other.EntryType);
59
TarHelpers
.ThrowIfEntryTypeNotSupported(compatibleEntryType, format, nameof(other));
140
get => (UnixFileMode)(_header._mode & (int)
TarHelpers
.ValidUnixFileModes);
143
if ((value & ~
TarHelpers
.ValidUnixFileModes) != 0) // throw on invalid UnixFileModes
294
TarHelpers
.CreateDirectory(destinationFullPath, Mode, pendingModes);
295
TarHelpers
.UpdatePendingModificationTimes(directoryModificationTimes, destinationFullPath, ModificationTime);
300
TarHelpers
.CreateDirectory(Path.GetDirectoryName(destinationFullPath)!, mode: null, pendingModes);
317
TarHelpers
.CreateDirectory(destinationFullPath, Mode, pendingModes);
318
TarHelpers
.UpdatePendingModificationTimes(directoryModificationTimes, destinationFullPath, ModificationTime);
324
TarHelpers
.CreateDirectory(Path.GetDirectoryName(destinationFullPath)!, mode: null, pendingModes);
System\Formats\Tar\TarFile.cs (6)
460
SortedDictionary<string, UnixFileMode>? pendingModes =
TarHelpers
.CreatePendingModesDictionary();
470
TarHelpers
.SetPendingModes(pendingModes);
471
TarHelpers
.SetPendingModificationTimes(directoryModificationTimes);
502
SortedDictionary<string, UnixFileMode>? pendingModes =
TarHelpers
.CreatePendingModesDictionary();
516
TarHelpers
.SetPendingModes(pendingModes);
517
TarHelpers
.SetPendingModificationTimes(directoryModificationTimes);
System\Formats\Tar\TarHeader.Read.cs (39)
24
Span<byte> buffer = stackalloc byte[
TarHelpers
.RecordSize];
45
byte[] rented = ArrayPool<byte>.Shared.Rent(minimumLength:
TarHelpers
.RecordSize);
46
Memory<byte> buffer = rented.AsMemory(0,
TarHelpers
.RecordSize); // minimumLength means the array could've been larger
122
if (
TarHelpers
.TryGetDateTimeOffsetFromTimestampString(ExtendedAttributes, PaxEaMTime, out DateTimeOffset mTime))
128
if (
TarHelpers
.TryGetStringAsBaseTenInteger(ExtendedAttributes, PaxEaMode, out int mode))
134
if (
TarHelpers
.TryGetStringAsBaseTenLong(ExtendedAttributes, PaxEaSize, out long size))
140
if (
TarHelpers
.TryGetStringAsBaseTenInteger(ExtendedAttributes, PaxEaUid, out int uid))
146
if (
TarHelpers
.TryGetStringAsBaseTenInteger(ExtendedAttributes, PaxEaGid, out int gid))
164
if (
TarHelpers
.TryGetStringAsBaseTenInteger(ExtendedAttributes, PaxEaDevMajor, out int devMajor))
170
if (
TarHelpers
.TryGetStringAsBaseTenInteger(ExtendedAttributes, PaxEaDevMinor, out int devMinor))
217
TarHelpers
.AdvanceStream(archiveStream, _size);
233
TarHelpers
.SkipBlockAlignmentPadding(archiveStream, _size);
279
await
TarHelpers
.AdvanceStreamAsync(archiveStream, _size, cancellationToken).ConfigureAwait(false);
295
await
TarHelpers
.SkipBlockAlignmentPaddingAsync(archiveStream, _size, cancellationToken).ConfigureAwait(false);
319
TarHelpers
.CopyBytes(archiveStream, copiedData, _size);
346
await
TarHelpers
.CopyBytesAsync(archiveStream, copiedData, size, cancellationToken).ConfigureAwait(false);
366
if (
TarHelpers
.IsAllNullBytes(spanChecksum))
370
int checksum = (int)
TarHelpers
.ParseOctal<uint>(spanChecksum);
377
long size = (long)
TarHelpers
.ParseOctal<ulong>(buffer.Slice(FieldLocations.Size, FieldLengths.Size));
378
Debug.Assert(size <=
TarHelpers
.MaxSizeLength, "size exceeded the max value possible with 11 octal digits. Actual size " + size);
386
name:
TarHelpers
.GetTrimmedUtf8String(buffer.Slice(FieldLocations.Name, FieldLengths.Name)),
387
mode: (int)
TarHelpers
.ParseOctal<uint>(buffer.Slice(FieldLocations.Mode, FieldLengths.Mode)),
388
mTime:
TarHelpers
.GetDateTimeOffsetFromSecondsSinceEpoch((long)
TarHelpers
.ParseOctal<ulong>(buffer.Slice(FieldLocations.MTime, FieldLengths.MTime))),
393
_uid = (int)
TarHelpers
.ParseOctal<uint>(buffer.Slice(FieldLocations.Uid, FieldLengths.Uid)),
394
_gid = (int)
TarHelpers
.ParseOctal<uint>(buffer.Slice(FieldLocations.Gid, FieldLengths.Gid)),
395
_linkName =
TarHelpers
.GetTrimmedUtf8String(buffer.Slice(FieldLocations.LinkName, FieldLengths.LinkName))
433
if (
TarHelpers
.IsAllNullBytes(magic))
519
_uName =
TarHelpers
.GetTrimmedUtf8String(buffer.Slice(FieldLocations.UName, FieldLengths.UName));
520
_gName =
TarHelpers
.GetTrimmedUtf8String(buffer.Slice(FieldLocations.GName, FieldLengths.GName));
527
_devMajor = (int)
TarHelpers
.ParseOctal<uint>(buffer.Slice(FieldLocations.DevMajor, FieldLengths.DevMajor));
530
_devMinor = (int)
TarHelpers
.ParseOctal<uint>(buffer.Slice(FieldLocations.DevMinor, FieldLengths.DevMinor));
539
long aTime = (long)
TarHelpers
.ParseOctal<ulong>(buffer.Slice(FieldLocations.ATime, FieldLengths.ATime));
540
_aTime =
TarHelpers
.GetDateTimeOffsetFromSecondsSinceEpoch(aTime);
542
long cTime = (long)
TarHelpers
.ParseOctal<ulong>(buffer.Slice(FieldLocations.CTime, FieldLengths.CTime));
543
_cTime =
TarHelpers
.GetDateTimeOffsetFromSecondsSinceEpoch(cTime);
552
_prefix =
TarHelpers
.GetTrimmedUtf8String(buffer.Slice(FieldLocations.Prefix, FieldLengths.Prefix));
622
buffer =
TarHelpers
.TrimEndingNullsAndSpaces(buffer);
681
string longPath =
TarHelpers
.GetTrimmedUtf8String(buffer);
System\Formats\Tar\TarHeader.Write.cs (16)
161
TarEntryType actualEntryType =
TarHelpers
.GetCorrectTypeFlagForFormat(TarEntryFormat.V7, _typeFlag);
171
TarEntryType actualEntryType =
TarHelpers
.GetCorrectTypeFlagForFormat(TarEntryFormat.Ustar, _typeFlag);
427
_mode =
TarHelpers
.GetDefaultMode(entryType),
440
tmpChecksum += WriteCommonFields(buffer,
TarHelpers
.GetCorrectTypeFlagForFormat(TarEntryFormat.Gnu, _typeFlag));
475
_mode =
TarHelpers
.GetDefaultMode(_typeFlag);
483
tmpChecksum += WriteCommonFields(buffer,
TarHelpers
.GetCorrectTypeFlagForFormat(TarEntryFormat.Pax, _typeFlag));
624
if (_size <=
TarHelpers
.MaxSizeLength)
636
Debug.Assert(Convert.ToInt64(ExtendedAttributes[PaxEaSize]) >
TarHelpers
.MaxSizeLength);
777
int paddingAfterData =
TarHelpers
.CalculatePadding(_size);
780
Debug.Assert(paddingAfterData <=
TarHelpers
.RecordSize);
782
Span<byte> zeros = stackalloc byte[
TarHelpers
.RecordSize];
793
int paddingAfterData =
TarHelpers
.CalculatePadding(_size);
796
Debug.Assert(paddingAfterData <=
TarHelpers
.RecordSize);
812
int paddingAfterData =
TarHelpers
.CalculatePadding(_size);
908
ExtendedAttributes[PaxEaMTime] =
TarHelpers
.GetTimestampStringFromDateTimeOffset(_mTime);
919
if (_size >
TarHelpers
.MaxSizeLength)
System\Formats\Tar\TarReader.cs (4)
231
TarHelpers
.AdvanceStream(_archiveStream, bytesToSkip);
235
TarHelpers
.SkipBlockAlignmentPadding(_archiveStream, _previouslyReadEntry._header._size);
273
await
TarHelpers
.AdvanceStreamAsync(_archiveStream, bytesToSkip, cancellationToken).ConfigureAwait(false);
277
await
TarHelpers
.SkipBlockAlignmentPaddingAsync(_archiveStream, _previouslyReadEntry._header._size, cancellationToken).ConfigureAwait(false);
System\Formats\Tar\TarWriter.cs (5)
281
Span<byte> buffer = stackalloc byte[
TarHelpers
.RecordSize];
322
byte[] rented = ArrayPool<byte>.Shared.Rent(minimumLength:
TarHelpers
.RecordSize);
323
Memory<byte> buffer = rented.AsMemory(0,
TarHelpers
.RecordSize); // minimumLength means the array could've been larger
346
Span<byte> emptyRecord = stackalloc byte[
TarHelpers
.RecordSize];
358
const int TwoRecordSize =
TarHelpers
.RecordSize * 2;
System\Formats\Tar\TarWriter.Unix.cs (4)
65
entry._header._mTime =
TarHelpers
.GetDateTimeOffsetFromSecondsSinceEpoch(status.MTime);
66
entry._header._aTime =
TarHelpers
.GetDateTimeOffsetFromSecondsSinceEpoch(status.ATime);
67
entry._header._cTime =
TarHelpers
.GetDateTimeOffsetFromSecondsSinceEpoch(status.CTime);
70
entry._header._mode = status.Mode & (int)
TarHelpers
.ValidUnixFileModes;