main-vinayFork / Source / WebClient / Web.Common / Extensions / StreamExtensions.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace DataUp.Web.Common
{
    /// <summary>
    /// Class having extension methods needed for stream
    /// </summary>
    public static class StreamExtensions
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        public static void CopyToStream(this Stream source, Stream target)
        {
            byte[] copyBuf = new byte[0x1000];
            int bytesRead = 0;
            int bufSize = copyBuf.Length;

            source.Position = 0;

            while ((bytesRead = source.Read(copyBuf, 0, bufSize)) > 0)
                target.Write(copyBuf, 0, bytesRead);
        }

        public static void CopyTo(this Stream source, string filePath)
        {
            using (FileStream writeStream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
                source.CopyTo(writeStream);
        }

        public static byte[] GetBytes(this Stream source)
        {
            byte[] ImageData = null;

            if (source != null)
            {
                // Create a byte array of file stream length
                ImageData = new byte[source.Length];

                source.Position = 0;

                //Read block of bytes from stream into the byte array
                source.Read(ImageData, 0, System.Convert.ToInt32(source.Length));
            }

            return ImageData;
        }
    }
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.