Beispiel #1
0
 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;
 }
Beispiel #2
0
            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('/');
                }
            }