File Stream C#

#region License
/* Copyright (C) 2009 Tim Coulter
 * 
 * This file is part of ExtremeML.
 * 
 * ExtremeML is free software: you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation either version
 * 2 of the License, or (at your option) any later version.
 * 
 * ExtremeML is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
 * the GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see http://www.gnu.org/licenses/.
*/
#endregion
using System;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.IO;
using System.Reflection;
using System.Xml.Linq;
namespace ExtremeML.Samples
{
  public static class Utility
  {
    /// 
    /// Copies the specified resource to a temporary file and returns its path.
    /// 

    public static string CreateFileFromResource(
      string resourcePath)
    {
      var filePath = Path.GetTempFileName();
      CreateFileFromResource(resourcePath, filePath);
      return filePath;
    }
    /// 
    /// Copies the specified resource to the specified path.
    /// 

    public static void CreateFileFromResource(
      string resourcePath,
      string filePath)
    {
      var data = new byte[4096];
      using (var inStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourcePath))
      using (var outStream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
      {
        int bytes;
        do
        {
          bytes = inStream.Read(data, 0, 4096);
          outStream.Write(data, 0, bytes);
        } while (bytes > 0);
      }
    }
  }
}