/// <summary> /// Stores body decoded-data to the specified file. Note: This method is available for single part entities only. /// </summary> /// <param name="fileName">File name with path, where to store body data.</param> /// <exception cref="ArgumentNullException">Is raised when <b>fileName</b> is null reference.</exception> /// <exception cref="ArgumentException">Is raised when any of the arguments has invalid value.</exception> /// <exception cref="InvalidOperationException">Is raised when this method is called for multipart entity.</exception> public void DataToFile(string fileName) { if (fileName == null) { throw new ArgumentNullException("fileName"); } if (fileName == string.Empty) { throw new ArgumentException("Argument 'fileName' value must be specified."); } if (this.Body == null) { throw new InvalidOperationException("Mime entity body has been not set yet."); } if (!(this.Body is MIME_b_SinglepartBase)) { throw new InvalidOperationException("This method is available only for single part entities, not for multipart."); } MIME_b_SinglepartBase body = (MIME_b_SinglepartBase)this.Body; using (Stream fs = File.Create(fileName)){ using (Stream dataStream = body.GetDataStream()){ Net_Utils.StreamCopy(dataStream, fs, 64000); } } }
/// <summary> /// Returns body data as byte[]. Note: This method is available for single part entities only. /// </summary> /// <exception cref="InvalidOperationException">Is raised when this method is called for multipart entity.</exception> /// <returns>Returns body data as byte[].</returns> public byte[] DataToByte() { if (this.Body == null) { throw new InvalidOperationException("Mime entity body has been not set yet."); } if (!(this.Body is MIME_b_SinglepartBase)) { throw new InvalidOperationException("This method is available only for single part entities, not for multipart."); } MemoryStream stream = new MemoryStream(); MIME_b_SinglepartBase body = (MIME_b_SinglepartBase)this.Body; using (Stream dataStream = body.GetDataStream()){ Net_Utils.StreamCopy(dataStream, stream, 64000); } return(stream.ToArray()); }
/// <summary> /// Stores body decoded-data to the specified stream. Note: This method is available for single part entities only. /// </summary> /// <param name="stream">Stream where to store body data.</param> /// <exception cref="ArgumentNullException">Is raised when <b>stream</b> is null reference.</exception> /// <exception cref="InvalidOperationException">Is raised when this method is called for multipart entity.</exception> public void DataToStream(Stream stream) { if (stream == null) { throw new ArgumentNullException("stream"); } if (this.Body == null) { throw new InvalidOperationException("Mime entity body has been not set yet."); } if (!(this.Body is MIME_b_SinglepartBase)) { throw new InvalidOperationException("This method is available only for single part entities, not for multipart."); } MIME_b_SinglepartBase body = (MIME_b_SinglepartBase)this.Body; using (Stream dataStream = body.GetDataStream()){ Net_Utils.StreamCopy(dataStream, stream, 64000); } }