/// <summary>
        /// Set the transfer mode for the data channel. If block
        /// mode is requested and it fails, stream mode is
        /// automatically used.
        /// </summary>
        /// <param name="mode"></param>
        protected void SetDataMode(FtpDataMode mode)
        {
            switch (mode)
            {
            case FtpDataMode.Block:
                throw new FtpException("Block mode transfers have not and will not be implemented.");

            case FtpDataMode.Stream:
                this.Execute("MODE S");
                break;
            }

            if (!this.ResponseStatus)
            {
                throw new FtpCommandException(this);
            }
        }
        /// <summary>
        /// Set the transfer mode for the data channel. If block
        /// mode is requested and it fails, stream mode is
        /// automatically used.
        /// </summary>
        /// <param name="mode"></param>
        protected void SetDataMode(FtpDataMode mode) {
            switch (mode) {
                case FtpDataMode.Block:
                    throw new FtpException("Block mode transfers have not and will not be implemented.");
                case FtpDataMode.Stream:
                    this.Execute("MODE S");
                    break;
            }

            if (!this.ResponseStatus) {
                throw new FtpCommandException(this);
            }
        }