2011-11-03 65 views
3

我想使用kernel32.dll下的GetFileInformationByHandle函數來獲取NTFS唯一文件標識符。 函數聲明是這樣的:如何獲取vb .net中的文件句柄

Declare Auto Function GetFileInformationByHandle Lib "kernel32.dll" _ 
(ByVal hFile As IntPtr, ByRef lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Boolean 

我的問題可能聽起來很蠢,但我怎麼得到的文件句柄(HFILE作爲IntPtr的)用於在Visual Basic中指定的文件名?

回答

4

可以使用FileStream.SafeFileHandle屬性:

Using fs As FileStream = New FileStream("c:\test.txt", FileMode.Create, FileAccess.Write) 
    Dim hFile = fs.SafeFileHandle.DangerousGetHandle() 
    ' do something 
End Using 
+0

我喜歡你的答案更好。 – LarsTech

+0

@LarsTech:謝謝 – DmitryG