private void NextFile()
        {
            if (_currFileId >= 0)
            {
                _uploadStream.Dispose();
            }

            _currFileId++;
            if (_currFileId >= _files.Count)
            {
                return;
            }

            _bytesWrote = 0;
            var currFile = _files[_currFileId];

            _uploadStream = new UploadStream(currFile.FullPath, _cloud, currFile.Size);
        }
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);
            if (!disposing)
            {
                return;
            }

            _uploadStream?.Close();

            if (_files.Count > 1)
            {
                string content = $"filename={_origfile.Name}\r\nsize = {_origfile.Size.DefaultValue}";
                var    data    = Encoding.UTF8.GetBytes(content);
                using (var stream = new UploadStream(_origfile.FullPath, _cloud, data.Length))
                {
                    stream.Write(data, 0, data.Length);
                }
            }

            OnFileUploaded(_files);
        }