1 os.Mkdir 與os.MkdirAll:
想要創建一個目錄:D:\\App\\BACKUPS\\,D:\\下面啥都沒有
調用
os.Mkdir()
報錯了,Mkdir:The system cannot find the path specified./ No such file or directory.
原因:MkDir()只能創建一層目錄,因爲App這目錄不存在,所以就無法創建後續的BACLUPS目錄了(注意,如果App目錄存在,是可以的);
解決方法:使用os.MkdirAll(), 它能創建一個完整的目錄,一路上沒有的目錄都會創建出來。
2 md5: Hash.Sum(b []byte)幹了啥:
b轉爲16進制加到Hash內部存在的MD5值的前面:
h := md5.New()
h.Write([]byte("23333333"))//計算"23333333"的MD5
bytesMD5 := h.Sum(nil)
strMD5 := fmt.Sprintf("%x", bytesMD5)
log.Println("Calculated MD5 with nil:", strMD5)
bytesMD5 = h.Sum([]byte{0x0A, 1, 100})
strMD5 = fmt.Sprintf("%x", bytesMD5)
log.Println("Calculated MD5 with things:", strMD5)
輸出:
有意思的是,如果沒有給Hash任何東西給它算MD5,會得出nil的md5:
h := md5.New()
bytesMD5 := h.Sum(nil)
strMD5 := fmt.Sprintf("%x", bytesMD5)
log.Println("Calculated MD5 without anything:", strMD5)
輸出: