How to convert file data to byte array in C#

By FoxLearn 12/30/2024 3:14:49 AM   127
If you're uploading a ZIP file to Azure Blob Storage, you would first need to convert the file into a byte array.

In this article, we'll discuss how to convert a file into a byte array in C#.

Why Convert a File to a Byte Array?

A file, whether it's a text document, an image, or a compressed archive, is stored in binary format. To transfer this file over a network or store it in a database, we typically convert the file into a byte array. A byte array is simply a sequence of bytes that represents the file's content.

Converting a File to a Byte Array

using System;
using System.IO;

public class FileConverter
{
    public byte[] ConvertFileToByteArray(string filename)
    {
        // Open the file stream
        using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read))
        {
            // Create a byte array of the file stream length
            byte[] bytes = new byte[fs.Length];
            
            // Read the file into the byte array
            fs.Read(bytes, 0, (int)fs.Length);
            
            // Return the byte array representing the file content
            return bytes;
        }
    }
}

In this example:

  • The FileStream is used to open the file for reading. The filename parameter represents the full path to the file you want to convert to a byte array.
  • We then create a byte array, bytes, with a length equal to the size of the file.
  • The fs.Read method is used to read the contents of the file into the byte array. The file's data is read into the bytes array starting at the first index (index 0), and the number of bytes read is the file's length.
  • After reading the entire file, the byte array bytes is returned, which now contains the file’s binary content.

You can now use the ConvertFileToByteArray method to convert any file to a byte array.

public class Program
{
    public static void Main()
    {
        string filePath = @"C:\dell\file.zip";
        FileConverter converter = new FileConverter();
        byte[] fileBytes = converter.ConvertFileToByteArray(filePath);
        Console.WriteLine($"File converted to byte array with length: {fileBytes.Length}");
    }
}

By converting files to byte arrays in C#, you can easily send them across networks, store them in databases, or work with them in APIs, making this technique a key part of modern application development.