我想用VB.NET打開一個隨機訪問文件當我試圖訪問文件Error 75 (Access to the path ....is denied)
時遇到以下錯誤消息。有什麼我必須改變來解決這個問題嗎?如何訪問VB.NET中的隨機訪問文件
Structure StdSections
'UPGRADE_WARNING: Fixed-length string size must fit in the buffer. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="3C1E4426-0B80-443E-B943-0627CD55D48B"'
<VBFixedString(15), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=15)> Public A() As Char 'BEAM --- complete beam designation 15
'UPGRADE_WARNING: Fixed-length string size must fit in the buffer. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="3C1E4426-0B80-443E-B943-0627CD55D48B"'
<VBFixedString(2), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=2)> Public B() As Char 'DSG --- shape ie "W" or "C" 2
Dim C As Single 'DN --- nominal depth of section 4
Dim d As Single 'WGT --- weight 4
.
.
.
End structure
''Note 'File1' holds complete path!
Public std As StdSections
Dim i,ffr,fLength,lastmembNo as integer
sectionFound = False
fLength = Len(std)
If fLength = 0 Then fLength = 168 ' 177
ffr = FreeFile()
'FileOpen(ffr, File1, OpenMode.Random, , , fLength)
FileOpen(ffr, File1, OpenMode.Random, OpenAccess.ReadWrite, OpenShare.LockRead, fLength)
>>Error 75 (Access to the path ....is denied) << path is perfectly good!!!
lastmembNo = CInt(LOF(ffr)) \ fLength
'ReDim std(lastmembNo)
For i = 1 To lastmembNo
FileGet(ffr, std, i)
If Trim(memberID) = Trim(std.A) Then
sectionFound = True
end if
next i
微軟在嘗試使VB6像.NET代碼一樣工作時並沒有爲我們提供幫助。重寫你的文件訪問喲使用適當的.NET工具 - 文件流 - 並從字節緩衝區手動解析字段。 –
我改變了我的實現,但現在讀取隨機訪問文件時出現另一個錯誤。我發佈了一個新線程,如果你可能知道發生了什麼? http://stackoverflow.com/questions/12452991/how-to-correctly-read-a-random-access-file-in-vb-net – Matthew