Skip to content

Commit 4e338b6

Browse files
tar dir add slash
1 parent d68d049 commit 4e338b6

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

src/archive/tar/writer.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,9 @@ func (tw *Writer) AddFS(fsys fs.FS) error {
424424
return err
425425
}
426426
h.Name = name
427+
if d.IsDir() {
428+
h.Name += "/"
429+
}
427430
if err := tw.WriteHeader(h); err != nil {
428431
return err
429432
}

src/archive/tar/writer_test.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1382,7 +1382,11 @@ func TestWriterAddFS(t *testing.T) {
13821382
t.Fatal(err)
13831383
}
13841384

1385-
if hdr.Name != name {
1385+
tmpName := name
1386+
if entryInfo.IsDir() {
1387+
tmpName += "/"
1388+
}
1389+
if hdr.Name != tmpName {
13861390
t.Errorf("test fs has filename %v; archive header has %v",
13871391
name, hdr.Name)
13881392
}

src/archive/zip/writer.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -520,13 +520,15 @@ func (w *Writer) AddFS(fsys fs.FS) error {
520520
return err
521521
}
522522
h.Name = name
523+
if d.IsDir() {
524+
h.Name += "/"
525+
}
523526
h.Method = Deflate
524527
fw, err := w.CreateHeader(h)
525528
if err != nil {
526529
return err
527530
}
528531
if d.IsDir() {
529-
h.Name += "/"
530532
return nil
531533
}
532534
f, err := fsys.Open(name)

0 commit comments

Comments
 (0)