diff --git a/src/LINQ/LINQ/test/resourceTest.vb b/src/LINQ/LINQ/test/resourceTest.vb new file mode 100644 index 0000000..0aa4370 --- /dev/null +++ b/src/LINQ/LINQ/test/resourceTest.vb @@ -0,0 +1,6 @@ +Module resourceTest + + Sub Main() + + End Sub +End Module diff --git a/src/LINQ/LINQ/test/test.vbproj b/src/LINQ/LINQ/test/test.vbproj index d21a6f7..53fe393 100644 --- a/src/LINQ/LINQ/test/test.vbproj +++ b/src/LINQ/LINQ/test/test.vbproj @@ -44,7 +44,7 @@ On - test.Program + test.resourceTest true @@ -89,6 +89,7 @@ + diff --git a/src/LINQ/RQL/Resource.vb b/src/LINQ/RQL/Resource.vb index 924ef0a..13fa710 100644 --- a/src/LINQ/RQL/Resource.vb +++ b/src/LINQ/RQL/Resource.vb @@ -15,6 +15,7 @@ Public Class Resource : Implements IDisposable Sub New(res As StreamPack) buf = res + index = New IndexReader(res.OpenFile("/index.dat", FileMode.OpenOrCreate, FileAccess.Read)).Read End Sub Public Function Add(key As String, data As Byte()) As Boolean @@ -63,6 +64,18 @@ Public Class Resource : Implements IDisposable Protected Overridable Sub Dispose(disposing As Boolean) If Not disposedValue Then If disposing Then + Using ms As New MemoryStream + Call New IndexWriter(ms).Write(index) + Call ms.Flush() + Call ms.Seek(Scan0, SeekOrigin.Begin) + + Dim file As Stream = buf.OpenFile("/index.dat", FileMode.OpenOrCreate, FileAccess.Write) + + Call file.Write(ms.ToArray, Scan0, ms.Length) + Call file.Flush() + Call file.Dispose() + End Using + ' TODO: 释放托管状态(托管对象) Call buf.Dispose() End If