public MegaUpdateItem(INode item, MegaUpdater source, FileSystemInfo targetPath) { TargetPath = targetPath ?? throw new ArgumentNullException(nameof(targetPath)); SourceItem = item ?? throw new ArgumentNullException(nameof(item)); _source = source ?? throw new ArgumentNullException(nameof(source)); ItemSize = FileSize.FromBytes(item.Size); ModifiedTime = item.ModificationDate ?? item.CreationDate; }
public MegaUpdateItem(INode item, MegaUpdater source, MegaUpdateItem owner) { SourceItem = item ?? throw new ArgumentNullException(nameof(item)); _source = source ?? throw new ArgumentNullException(nameof(source)); ItemSize = item.Size; ModifiedTime = item.ModificationDate ?? item.CreationDate; Name = item.Name; IsDirectory = item.Type == NodeType.Directory; IsFile = item.Type == NodeType.File; if (owner != null) { _owner = owner; var current = owner; var result = Name; while (current?._owner != null) { result = current.Name + "/" + result; current = current._owner; } ClientRelativeFileName = result.Trim('/'); } }