2 instantiations of FileId
System.Formats.Tar (2)
System\Formats\Tar\TarHelpers.Unix.cs (2)
137
return new
FileId
(status.Dev, status.Ino);
154
fileId = new
FileId
(status.Dev, status.Ino);
26 references to FileId
System.Formats.Tar (26)
System\Formats\Tar\TarEntry.cs (6)
478
private static void CreateSymlinkPlaceholderFile(string filePath, string linkTarget, bool overwrite, Dictionary<
FileId
, (string, string)> pendingLinks)
496
FileId
fileId = TarHelpers.GetFileId(filePath);
608
private void ExtractToFileInternal(string filePath, string? linkTargetPath, bool overwrite, TarHardLinkMode hardLinkMode, Dictionary<
FileId
, (string, string)>? pendingLinks)
623
private Task ExtractToFileInternalAsync(string filePath, string? linkTargetPath, bool overwrite, TarHardLinkMode hardLinkMode, Dictionary<
FileId
, (string, string)>? pendingLinks, CancellationToken cancellationToken)
713
private static void VerifyDestinationPath(string filePath, bool overwrite, Dictionary<
FileId
, (string, string)>? pendingLinks)
742
if (pendingLinks is { Count: > 0 } && TarHelpers.TryGetPathInfo(filePath, out
FileId
placeholderId, out _))
System\Formats\Tar\TarHelpers.cs (15)
32
internal Dictionary<
FileId
, (string SymlinkPath, string LinkTarget)>? PendingLinks;
40
internal Dictionary<
FileId
, (string SymlinkPath, string LinkTarget)> GetOrCreatePendingLinks()
511
internal static void CreatePendingLinks(string destinationDirectoryFullPath, Dictionary<
FileId
, (string SymlinkPath, string LinkTarget)>? pendingLinks)
544
FileId
[] fileIds = new
FileId
[pendingLinks.Count];
547
foreach (
FileId
fileId in fileIds)
580
private readonly Dictionary<
FileId
, (string SymlinkPath, string LinkTarget)>? _pendingLinks;
585
internal PendingLinkResolver(string destination, string resolvedDestination, int destinationSymlinkDepth, Dictionary<
FileId
, (string SymlinkPath, string LinkTarget)>? pendingLinks)
607
internal void CreateLink(
FileId
fileId, string symlinkPath, string linkTarget)
614
private void AddPendingLink(string rootPath,
FileId
fileId, string symlinkPath, string linkTarget, HashSet<
FileId
>? visitedLinks, out string resolvedFullPath)
655
private bool Resolve(ref string? containmentRootPath, string baseFullPath, ReadOnlySpan<char> relativePath, out string resolvedFullPath, HashSet<
FileId
>? visitedLinks)
692
if (!checkExists || !TryGetPathInfo(componentPath, out
FileId
fileId, out bool isSymlink))
725
visitedLinks ??= new HashSet<
FileId
>();
765
private bool FollowExistingSymlink(ref string? rootPath, string linkDirectory, string linkTarget, HashSet<
FileId
>? visitedLinks, out string resolvedFullPath)
System\Formats\Tar\TarHelpers.Unix.cs (5)
10
internal struct FileId : IEquatable<
FileId
>
21
public bool Equals(
FileId
other) => Dev == other.Dev && Ino == other.Ino;
22
public override bool Equals(object? obj) => obj is
FileId
other && Equals(other);
134
internal static
FileId
GetFileId(string filePath)
140
internal static bool TryGetPathInfo(string path, out
FileId
fileId, out bool isSymlink)