Пытаюсь создать копию MBR записывая её в файл mbr.img:
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern SafeFileHandle CreateFile(string lpFileName,[MarshalAs(UnmanagedType.U4)] FileAccess dwDesiredAccess,
[MarshalAs(UnmanagedType.U4)] FileShare dwShareMode,
IntPtr lpSecurityAttributes,
[MarshalAs(UnmanagedType.U4)] FileMode dwCreationDisposition,
[MarshalAs(UnmanagedType.U4)] FileAttributes dwFlagsAndAttributes,
IntPtr hTemplateFile);
SafeFileHandle handle = CreateFile(lpFileName: @"\\.\C:",dwDesiredAccess: FileAccess.Read,dwShareMode: FileShare.ReadWrite,
lpSecurityAttributes: IntPtr.Zero,dwCreationDisposition: FileMode.OpenOrCreate,
dwFlagsAndAttributes: FileAttributes.Normal,hTemplateFile: IntPtr.Zero);
using (FileStream disk = new FileStream(handle, FileAccess.Read))
{
byte[] mbrData = new byte[512];
Console.WriteLine("Starting MBR Backup...");
try
{
disk.Read(mbrData, 0, mbrData.Length);
FileStream mbrSave = new FileStream("mbr.img", FileMode.Create);
mbrSave.Write(mbrData, 0, mbrData.Length);
Console.WriteLine("MBR Backuped to mymbr.img success!");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
Ошибок нету, но создаётся пустой файл mbr.img
В чём может быть ошибка?
P.S: На Windows 7 работает нормально. Пишу на windows 10
Пример взял от сюда: Создания файла Master Boot Record
Проблема решена добавлением using в запись файла:
using (var handle = CreateFile(@"\\.\C:", FileAccess.Read, FileShare.ReadWrite, IntPtr.Zero, FileMode.OpenOrCreate, FileAttributes.Normal, IntPtr.Zero))
{
using (var disk = new FileStream(handle, FileAccess.Read))
{
Console.WriteLine(value: "Starting MBR Backup...");
try
{
disk.Read(new byte[512], 0, (new byte[512]).Length);
using (var mbrSave = new FileStream(path: "mbr.img", mode: FileMode.Create))
{
mbrSave.Write(array: new byte[512], offset: 0, count: (new byte[512]).Length);
Console.WriteLine("MBR Backuped to mymbr.img success!");
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Допустим, есть приложение, написанное на каком-то языкеДанное приложение не имеет API, но имеет некоторый интерфейс
Задача: создать два логаПервый для записи Info, второй для записи Errors
У меня программа для решения уравнения методом касательнойНа форме разместила интервал и точность, а на кнопку Вычислить нужно прописать...