You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
591 B

  1. package Encryption
  2. import (
  3. "os"
  4. )
  5. func SecureDelete(FilePath string) error {
  6. var (
  7. file *os.File
  8. fileInfo os.FileInfo
  9. size int64
  10. zeroBytes []byte
  11. e error
  12. )
  13. file, _ = os.OpenFile(FilePath, os.O_RDWR, 0666)
  14. defer file.Close()
  15. // Find out how large is the target file
  16. fileInfo, e = file.Stat()
  17. if e != nil {
  18. return e
  19. }
  20. size = fileInfo.Size()
  21. // Create byte array filled with zero's
  22. zeroBytes = make([]byte, size)
  23. _, e = file.Write([]byte(zeroBytes))
  24. if e != nil {
  25. return e
  26. }
  27. e = os.Remove(FilePath)
  28. if e != nil {
  29. return e
  30. }
  31. return nil
  32. }