func GetFileId(file string, info os.FileInfo) string {
	stat := info.Sys().(*syscall.Stat_t)
	return fmt.Sprintf("%v_%v_%v", Md5(file), stat.Ino, stat.Dev)
}
GetFileId generates an id by file name and its info. The id can help to identify
whether the file content was rewritten or not. For example, if two identifiers
calculated for same file name are different, we assume the file content was
rewritten between first and the second identifiers calculations. If the
identifiers are same, we assume that new data could be added to the file,
but previously written one stays unchanged.
package utils
import (
	"fmt"
	"os"
	"path/filepath"
	"syscall"
)