Remove uncompleted file on any error

This commit is contained in:
nxshock 2023-04-08 14:01:44 +05:00
parent ca8193ad06
commit dc3eb7d9ef

View File

@ -62,7 +62,8 @@ func (index Index) Save(fileName string) error {
enc, err := zstd.NewWriter(f, zstd.WithEncoderLevel(zstd.SpeedBestCompression)) enc, err := zstd.NewWriter(f, zstd.WithEncoderLevel(zstd.SpeedBestCompression))
if err != nil { if err != nil {
f.Close() // TODO: удалить частичный файл? f.Close()
os.Remove(fileName)
return err return err
} }
@ -82,7 +83,8 @@ func (index Index) Save(fileName string) error {
err := csvWriter.Write([]string{fileName, historyItem.ArchiveFileName, strconv.Itoa(int(historyItem.ModificationTime.Unix()))}) err := csvWriter.Write([]string{fileName, historyItem.ArchiveFileName, strconv.Itoa(int(historyItem.ModificationTime.Unix()))})
if err != nil { if err != nil {
enc.Close() enc.Close()
f.Close() // TODO: удалить частичный файл? f.Close()
os.Remove(fileName)
return err return err
} }
} }
@ -91,13 +93,15 @@ func (index Index) Save(fileName string) error {
csvWriter.Flush() csvWriter.Flush()
if err := csvWriter.Error(); err != nil { if err := csvWriter.Error(); err != nil {
enc.Close() enc.Close()
f.Close() // TODO: удалить частичный файл? f.Close()
os.Remove(fileName)
return err return err
} }
err = enc.Close() err = enc.Close()
if err != nil { if err != nil {
f.Close() // TODO: удалить частичный файл? f.Close()
os.Remove(fileName)
return err return err
} }