When retrieving compressed files (FtpSession.Compression == Compression.Archive) and the SIZE command is supported, TotalByes would normally return the byte count of the compressed files, so in this case TotalBytes returns the value of BytesCopied when the Length of the remote files is less than BytesCopied.