哪种方法更好?

时间:2010-07-22 16:30:21

标签: c#

我正在使用导入来打开已连接的物理硬盘:

var sfh = Imports.CreateFile(Path, Imports.FileAccess.GenericAll, Imports.FileShare.None, IntPtr.Zero, Imports.CreationDisposition.OpenExisting, 0, IntPtr.Zero);
if (sfh.IsInvalid)
{
    Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());
    return;
}
Geometry = Imports.GetGeometry(sfh);
var fs = new FileStream(sfh, FileAccess.ReadWrite, (int)Geometry.BytesPerSector, false);

这样可以正常工作,但是我想知道这是否是一种从驱动器中读取字节的更有效方法,而不是使用FileStream:http://msdn.microsoft.com/en-us/library/aa365467%28v=VS.85%29.aspx

1 个答案:

答案 0 :(得分:1)

速度和/或效率对你来说很重要吗?因为在这种情况下差异可能很小......

您提供的链接似乎使用了WinAPI方法。我会避免使用这些,因为.net GarbageCollector不能很好地使用Native资源,如果你没有正确处理这些内容,你可能会遇到内存泄漏......