Comments (4)
What is your code? How can I reproduce the issue?
from archiver.
package main
import (
"context"
"fmt"
"io"
"github.com/mholt/archiver/v4"
)
func main() {
ArchiverTest("public.7z")
return
}
func ArchiverTest(path string) {
f, _ := os.Open(path)
format, readStream, err := archiver.Identify(path, f)
if err != nil {
return
}
extractor, ok := format.(archiver.Extractor)
if !ok {
return
}
switch extractor.(type) {
case archiver.Zip:
extractor = archiver.Zip{TextEncoding: "gbk"}
fmt.Println("archiver.Zip")
case archiver.SevenZip:
extractor = archiver.SevenZip{}
fmt.Println("archiver.SevenZip")
case archiver.Rar:
extractor = archiver.Rar{}
fmt.Println("archiver.Rar")
default:
fmt.Println("unsupported compression algorithm")
return
}
ctx := context.Background()
handler := func(ctx context.Context, f archiver.File) error {
filename := f.Name()
newfile, err := os.Create(filename)
if err != nil {
panic(err)
}
defer newfile.Close()
old, err := f.Open()
if err != nil {
panic(err)
}
defer old.Close()
_, err = io.Copy(newfile, old)
if err != nil {
panic(err)
}
fmt.Printf("extracted %s \n", f.Name())
return nil
}
err = extractor.Extract(ctx, readStream, nil, handler)
if err != nil {
return
}
}
from archiver.
What is your code? How can I reproduce the issue?
this is the test code,zip and rar is ok,but 7z it return panic: sevenzip: unsupported compression algorithm
from archiver.
I just ran your code and I didn't get any errors. Change fmt.Println("unsupported compression algorithm")
to fmt.Printf("unsupported format: %#v", extractor)
and see what you get.
But anyway this does not appear to be a bug in archiver, so closing.
from archiver.
Related Issues (20)
- RAR signature not found HOT 4
- If overwrite is enabled for unarchive, and the file being overwritten is a symlink, then it tries to follow the symlink, rather than replace it HOT 12
- Return io.Reader from archiver.FileSystem.Open(filename) HOT 1
- func FilesFromDisk filenames arg, if path seperator is not system defined, pathInArchieve may be wrong path HOT 7
- Tar files created inside the directory they are compressing are not walkable HOT 5
- file 2G.file: writing data: archive/tar: write too long HOT 1
- Listing files of an Encrypted RAR Without Password Input HOT 1
- The CompressFile function does not work HOT 2
- Unarchiving read-only folders fails HOT 1
- Can't create archive with broken symlinks HOT 3
- rardecode: RAR signature not found HOT 8
- Compare and sync two directories HOT 1
- Append/Insert files into an existing Zip file? HOT 14
- WIll there be support for just generic Archive and Extract to a dir? HOT 1
- Add lzip support
- the order of archiver.File.NameInArchive in archiver.Rar{} is opposite
- CVE-2024-0406 Archiver Path Traversal vulnerability HOT 2
- DMG/`bzip2` file read error: `bzip2: corrupted input: invalid stream magic` HOT 13
- `archiver.Identify` fails on non-archive file: zlib: invalid header HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from archiver.