如何使用.Net直接写入磁盘?

时间:2014-09-29 08:16:06

标签: .net winapi disk

我找到了一种从驱动器读取的方法,使用Darryl Braaten发布的方法 How do I read a disk directly with .Net?

我现在正试图找到一种在驱动器上写入的方法,并且在他的方法中没有实现write方法。任何人都可以建议一种方法吗?

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

只需使用WriteFile P / Invoke功能:

[DllImport("kernel32.dll", SetLastError=true)]
static extern bool WriteFile(
    IntPtr hFile, 
    byte[] lpBuffer, 
    uint nNumberOfBytesToWrite, 
    out uint lpNumberOfBytesWritten,
    IntPtr lpOverlapped);

ReadFile来电替换为WriteFile,这非常简单。请记住:

  • 您使用CreateFile获得的句柄write访问权限
  • 你必须为每个块写入字节;块大小必须是扇区大小的倍数。即如果你只想写1个字节,你必须读取整个扇区,修改内存中的字节,然后写回整个扇区