/Source Code/FileArchive/FileTable.vb

# · Visual Basic · 61 lines · 48 code · 10 blank · 3 comment · 0 complexity · e57e86299849a3782236e440630096e0 MD5 · raw file

  1. ''' <summary>
  2. ''' Represents a table of files contained in an archive.
  3. ''' </summary>
  4. Public Class FileTable
  5. Private FFiles As New List(Of EntryData)
  6. Friend ReadOnly Property Files(ByVal index As Integer) As EntryData
  7. Get
  8. Return FFiles(index)
  9. End Get
  10. End Property
  11. Public ReadOnly Property FileNames() As String()
  12. Get
  13. Dim Result(FFiles.Count - 1) As String
  14. For I As Integer = 0 To FFiles.Count - 1
  15. Result(I) = FFiles(I).FileName
  16. Next
  17. Return Result
  18. End Get
  19. End Property
  20. Public ReadOnly Property VirtualFileNames() As String()
  21. Get
  22. Dim Result(FFiles.Count - 1) As String
  23. For I As Integer = 0 To FFiles.Count - 1
  24. Result(I) = FFiles(I).VirtualFileName
  25. Next
  26. Return Result
  27. End Get
  28. End Property
  29. Public ReadOnly Property FileCount() As Integer
  30. Get
  31. Return FFiles.Count
  32. End Get
  33. End Property
  34. Public Sub AddFile(ByVal virtualFileName As String, ByVal fileName As String)
  35. FFiles.Add(New EntryData(fileName, virtualFileName, 0))
  36. End Sub
  37. Friend Sub AddFile(ByVal virtualFileName As String, ByVal fileName As String, ByVal position As Integer)
  38. FFiles.Add(New EntryData(fileName, virtualFileName, position))
  39. End Sub
  40. Friend Sub SetFilePosition(ByVal virtualFileName As String, ByVal position As Integer)
  41. For Each File As EntryData In FFiles
  42. If File.VirtualFileName = virtualFileName Then File.Position = position
  43. Next
  44. End Sub
  45. Friend Function GetFilePosition(ByVal virtualFileName As String) As Integer
  46. For Each File As EntryData In FFiles
  47. If File.VirtualFileName = virtualFileName Then Return File.Position
  48. Next
  49. Throw New ApplicationException("Cannot find the file: '" + virtualFileName + "' in the archive.")
  50. End Function
  51. End Class