Mega Code Archive

 
Categories / C# / File Stream
 

Copies the specified resource to a temporary file and returns its path

#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   {     /// <summary>     /// Copies the specified resource to a temporary file and returns its path.     /// </summary>     public static string CreateFileFromResource(       string resourcePath)     {       var filePath = Path.GetTempFileName();       CreateFileFromResource(resourcePath, filePath);       return filePath;     }     /// <summary>     /// Copies the specified resource to the specified path.     /// </summary>     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);       }     }   } }