JL. JL. - 1 month ago 9
C# Question

Reliable way to convert a file to a byte[]

I found the following code on the web:

private byte [] StreamFile(string filename)
{
FileStream fs = new FileStream(filename, FileMode.Open,FileAccess.Read);

// Create a byte array of file stream length
byte[] ImageData = new byte[fs.Length];

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

//Close the File Stream
fs.Close();
return ImageData; //return the byte data
}


Is it reliable enough to use to convert a file to byte[] in c#, or is there a better way to do this?

Answer
byte[] bytes = System.IO.File.ReadAllBytes(filename);

That should do the trick. ReadAllBytes opens the file, reads its contents into a new byte array, then closes it. Here's the MSDN page for that method.