参考如下代码
using System.Runtime.InteropServices;[DllImport("ntdll.dll")]
public static extern int RtlCompareMemory(IntPtr Destination,
IntPtr Source, int Length); // 比较两个内存块是否相同private void button1_Click(object sender, EventArgs e)
{
byte[] vHead = new byte[] { 0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1 }; // Doc文件的头标志
FileStream vFileStream = new FileStream(@"c:\temp\temp.doc",
FileMode.Open, FileAccess.Read);
byte[] vBuffer = new byte[vHead.Length];
vFileStream.Read(vBuffer, 0, vBuffer.Length); // 读取文件的头信息
vFileStream.Close();
if (RtlCompareMemory(Marshal.UnsafeAddrOfPinnedArrayElement(vHead, 0),
Marshal.UnsafeAddrOfPinnedArrayElement(vBuffer, 0), vHead.Length) ==
vHead.Length)
{
MessageBox.Show("估计是Word文档");
}
}
using System.Runtime.InteropServices;[DllImport("ntdll.dll")]
public static extern int RtlCompareMemory(IntPtr Destination,
IntPtr Source, int Length); // 比较两个内存块是否相同private void button1_Click(object sender, EventArgs e)
{
byte[] vHead = new byte[] { 0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1 }; // Doc文件的头标志
FileStream vFileStream = new FileStream(@"c:\temp\temp.doc",
FileMode.Open, FileAccess.Read);
byte[] vBuffer = new byte[vHead.Length];
vFileStream.Read(vBuffer, 0, vBuffer.Length); // 读取文件的头信息
vFileStream.Close();
if (RtlCompareMemory(Marshal.UnsafeAddrOfPinnedArrayElement(vHead, 0),
Marshal.UnsafeAddrOfPinnedArrayElement(vBuffer, 0), vHead.Length) ==
vHead.Length)
{
MessageBox.Show("估计是Word文档");
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货