Fix unzip empty dir bug
This commit is contained in:
parent
bf7ebfd618
commit
84cdbe88b3
|
@ -176,6 +176,11 @@ func cloneZipItem(f *zip.File, dest string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if f.FileInfo().IsDir() {
|
if f.FileInfo().IsDir() {
|
||||||
|
err = os.Mkdir(path, os.ModeDir|os.ModePerm)
|
||||||
|
if nil != err {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -188,7 +193,7 @@ func cloneZipItem(f *zip.File, dest string) error {
|
||||||
|
|
||||||
defer rc.Close()
|
defer rc.Close()
|
||||||
|
|
||||||
// use os.Create() since Zip don't store file permissions.
|
// use os.Create() since Zip don't store file permissions
|
||||||
fileCopy, err := os.Create(path)
|
fileCopy, err := os.Create(path)
|
||||||
if nil != err {
|
if nil != err {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -56,21 +56,24 @@ func TestUnzip(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestEmptyDir(t *testing.T) {
|
func TestEmptyDir(t *testing.T) {
|
||||||
err := os.MkdirAll(packageName+"/dir/subDir1", 644)
|
dir1 := "/dir/subDir1"
|
||||||
|
dir2 := "/dir/subDir2"
|
||||||
|
|
||||||
|
err := os.MkdirAll(packageName+dir1, 644)
|
||||||
if nil != err {
|
if nil != err {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = os.MkdirAll(packageName+"/dir/subDir2", 644)
|
err = os.MkdirAll(packageName+dir2, 644)
|
||||||
if nil != err {
|
if nil != err {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
f, err := os.Create(packageName + "/dir/subDir2/file")
|
f, err := os.Create(packageName + dir2 + "/file")
|
||||||
if nil != err {
|
if nil != err {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
|
|
||||||
|
@ -98,6 +101,37 @@ func TestEmptyDir(t *testing.T) {
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = Zip.Unzip(packageName+"/dir.zip", packageName+"/unzipDir")
|
||||||
|
if nil != err {
|
||||||
|
t.Error(err)
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if !File.IsExist(packageName+"/unzipDir") || !File.IsDir(packageName+"/unzipDir") {
|
||||||
|
t.Error("Unzip failed")
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if !File.IsExist(packageName+"/unzipDir"+dir1) || !File.IsDir(packageName+"/unzipDir"+dir1) {
|
||||||
|
t.Error("Unzip failed")
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if !File.IsExist(packageName+"/unzipDir"+dir2) || !File.IsDir(packageName+"/unzipDir"+dir2) {
|
||||||
|
t.Error("Unzip failed")
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if !File.IsExist(packageName+"/unzipDir"+dir2+"/file") || File.IsDir(packageName+"/unzipDir"+dir2+"/file") {
|
||||||
|
t.Error("Unzip failed")
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
|
|
Loading…
Reference in New Issue