Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

c# read byte array from resource

Tags:

c#

bytearray

I've been trying to figure out how to read a byte array from one of my resource files, I have tried the most popular hits on Google without clear success.

I have a file stored in the resource collection of my program, I'd like to read this file as a byte array

I'm currently just reading the file from the root directory of my program with the following code:

FileStream fs = new FileStream(Path, FileMode.Open);
BinaryReader br = new BinaryReader(fs);
byte[] bin = br.ReadBytes(Convert.ToInt32(fs.Length));
fs.Close();
br.Close();

However I want to store this file as a resource in my application, so that I don't have to ship an extra file with my program.

This file holds encrypted data that part of my program uses.

Any help or pointers would be greatly appreciated!

like image 529
Raskaroth Avatar asked Sep 27 '11 18:09

Raskaroth


People also ask

What is the full name of C?

In the real sense it has no meaning or full form. It was developed by Dennis Ritchie and Ken Thompson at AT&T bell Lab. First, they used to call it as B language then later they made some improvement into it and renamed it as C and its superscript as C++ which was invented by Dr.

What C is used for?

C programming language is a machine-independent programming language that is mainly used to create many types of applications and operating systems such as Windows, and other complicated programs such as the Oracle database, Git, Python interpreter, and games and is considered a programming foundation in the process of ...

Why is C named so?

Quote from wikipedia: "A successor to the programming language B, C was originally developed at Bell Labs by Dennis Ritchie between 1972 and 1973 to construct utilities running on Unix." The creators want that everyone "see" his language. So he named it "C".


1 Answers

Assuming you are talking about files that are embedded as resources in your assembly:

var assembly = System.Reflection.Assembly.GetExecutingAssembly();
using (var stream = assembly.GetManifestResourceStream("SomeNamespace.somefile.png"))
{
    byte[] buffer = new byte[stream.Length];
    stream.Read(buffer, 0, buffer.Length);
    // TODO: use the buffer that was read
}
like image 196
Darin Dimitrov Avatar answered Sep 22 '22 07:09

Darin Dimitrov