Skip to content

Example of opening file from archive #3

@krum110487

Description

@krum110487

Hello,

I am interested in using this code for my project, but I am not too familiar with the 7z part of the code. I want to use this code to simply take the archive, Loop through the files and analyze them, without unzipping to the disk.

I am not 100% sure how to go about doing that with your library, and I am a bit in over my head.

looking at your code I have this:

func main() {
	//Initialize the lib
	lib, err := sz.NewLib()
	must(err)
	defer lib.free()

	//Get the file reference
	f, err :- os.Open("file.7z")
	must(err)
	
	//Get the file stats
	stats, err := f.Stat()
	must(err)
	
	//Open the 7z file
	is, err := sz.NewInStream(f, "7z", stats.Size())
	is.Stats - &sz.ReadStats{}
	a, err := lib.OpenArchive(is, true)
	must(err)
	
	//This is where my understanding gets a bit fuzzy...

After this it looks like the ecs struct above is used with the "GetStream" function, and I can see how the GetStream function extracts to a file, that makes sense. Here are my more specific questions...

  1. is GetStream called for each item? I think it is, but I want to be sure I understand this.
  2. if it is per item, what code would I have to write to simply open the file, so I can read it as a text or binary just like os.Open?

I would be happy to write up some examples like you have for the command line once I understand a very trivial example of opening a file found inside of the archive! Thank you for taking the time to read this!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions