/Source Code/FileArchive/FileTable.vb
Visual Basic | 61 lines | 48 code | 10 blank | 3 comment | 0 complexity | e57e86299849a3782236e440630096e0 MD5 | raw file
- ''' <summary>
- ''' Represents a table of files contained in an archive.
- ''' </summary>
- Public Class FileTable
-
- Private FFiles As New List(Of EntryData)
-
- Friend ReadOnly Property Files(ByVal index As Integer) As EntryData
- Get
- Return FFiles(index)
- End Get
- End Property
-
- Public ReadOnly Property FileNames() As String()
- Get
- Dim Result(FFiles.Count - 1) As String
- For I As Integer = 0 To FFiles.Count - 1
- Result(I) = FFiles(I).FileName
- Next
- Return Result
- End Get
- End Property
-
- Public ReadOnly Property VirtualFileNames() As String()
- Get
- Dim Result(FFiles.Count - 1) As String
- For I As Integer = 0 To FFiles.Count - 1
- Result(I) = FFiles(I).VirtualFileName
- Next
- Return Result
- End Get
- End Property
-
- Public ReadOnly Property FileCount() As Integer
- Get
- Return FFiles.Count
- End Get
- End Property
-
- Public Sub AddFile(ByVal virtualFileName As String, ByVal fileName As String)
- FFiles.Add(New EntryData(fileName, virtualFileName, 0))
- End Sub
-
- Friend Sub AddFile(ByVal virtualFileName As String, ByVal fileName As String, ByVal position As Integer)
- FFiles.Add(New EntryData(fileName, virtualFileName, position))
- End Sub
-
- Friend Sub SetFilePosition(ByVal virtualFileName As String, ByVal position As Integer)
- For Each File As EntryData In FFiles
- If File.VirtualFileName = virtualFileName Then File.Position = position
- Next
- End Sub
-
- Friend Function GetFilePosition(ByVal virtualFileName As String) As Integer
- For Each File As EntryData In FFiles
- If File.VirtualFileName = virtualFileName Then Return File.Position
- Next
- Throw New ApplicationException("Cannot find the file: '" + virtualFileName + "' in the archive.")
- End Function
-
- End Class