Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Example of opening file from archive #3

Open
krum110487 opened this issue Jun 25, 2021 · 0 comments
Open

Example of opening file from archive #3

krum110487 opened this issue Jun 25, 2021 · 0 comments

Comments

@krum110487
Copy link

krum110487 commented Jun 25, 2021

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant