用C#编写一个读取磁盘第一扇区的程序

1.运行结果

2.WinHex校验

3.程序

cs 复制代码
using System;
using System.IO;

class Program
{
    static void Main()
    {
        try
        {
            // 以管理员权限运行此程序
            const string drivePath = @"\\.\G:";
            const int sectorSize = 512;  // 标准扇区大小

            // 打开逻辑驱动器(需要管理员权限)
            using (FileStream drive = new FileStream(
                drivePath,
                FileMode.Open,
                FileAccess.Read,
                FileShare.ReadWrite))
            {
                byte[] sector = new byte[sectorSize];
                int bytesRead = drive.Read(sector, 0, sectorSize);

                if (bytesRead != sectorSize)
                {
                    Console.WriteLine($"错误:只读取到 {bytesRead} 字节,预期 {sectorSize} 字节");
                    return;
                }

                Console.WriteLine("成功读取引导扇区内容:");
                Console.WriteLine(BitConverter.ToString(sector).Replace("-", " "));

                // 可选:保存到文件
                File.WriteAllBytes("G_BootSector.bin", sector);
                Console.WriteLine("\n数据已保存到 G_BootSector.bin");
            }
        }
        catch (UnauthorizedAccessException)
        {
            Console.WriteLine("错误:请以管理员权限运行程序");
        }
        catch (FileNotFoundException)
        {
            Console.WriteLine("错误:找不到驱动器 G:");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"发生错误:{ex.Message}");
        }
    }
}