example_03.bmx 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. SuperStrict
  2. Framework Archive.Zip
  3. Import brl.standardio
  4. Local wa:TWriteArchive = New TWriteArchive
  5. wa.SetFormat(EArchiveFormat.ZIP)
  6. wa.SetEncryption(EArchiveEncryptionType.AES256)
  7. wa.SetPassphrase("abc123")
  8. wa.Open("data.zip")
  9. wa.AddEntry("testdata.txt", "files/testdata.txt")
  10. wa.AddEntry("테스트_데이터.txt", "files/테스트_데이터.txt")
  11. wa.Close()
  12. Local entry:TArchiveEntry = New TArchiveEntry
  13. Local ra:TReadArchive = New TReadArchive
  14. ra.SetFormat(EArchiveFormat.ZIP)
  15. ra.SetPassphraseCallback(GetPass, Null)
  16. ra.Open("data.zip")
  17. While ra.ReadNextHeader(entry) = ARCHIVE_OK
  18. Print "File : " + entry.Pathname()
  19. Print "Size : " + entry.Size()
  20. Local s:String = LoadText(ra.DataStream())
  21. Print "String size : " + s.Length
  22. Print "First n chars : " + s[0..17]
  23. Print
  24. Wend
  25. ra.Free()
  26. Function GetPass:String(archive:TReadArchive, data:Object, cancel:Int Var)
  27. Global count:Int
  28. If count = 3 Then
  29. cancel = True
  30. Return Null
  31. End If
  32. count :+ 1
  33. Local pass:String = Input("Enter Password (abc123): ")
  34. Return pass
  35. End Function