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);
}
}
}
}
Related examples in the same category