Go語言如何獲得一個檔案的md5值

壹頁書發表於2015-04-07
獲取當前目錄下一個檔案的MD5值

package main                                                                        
                                                                                    
import (                                                                            
        "crypto/md5"                                                                
        "fmt"                                                                       
        "io"                                                                        
        "log"                                                                       
        "os"                                                                        
        "os/exec"                                                                   
        "path/filepath"                                                             
        "strings"                                                                   
)                                                                                   
                                                                                    
func GetCurrentPath() string {                                                      
        file, _ := exec.LookPath(os.Args[0])                                        
        path, _ := filepath.Abs(file)                                               
        path = string(path[0:strings.LastIndex(path, "/")])                         
        return path                                                                 
}                                                                                   
                                                                                    
func main() {                                                                       
        testFile := GetCurrentPath() + "/backup.sh"                                 
        log.Println(testFile)                                                       
        file, inerr := os.Open(testFile)                                            
        if inerr == nil {                                                           
                md5h := md5.New()                                                   
                io.Copy(md5h, file)                                                 
                fmt.Printf("%x", md5h.Sum([]byte(""))) //md5                        
        }                                                                           
}                                                                                   
~        

可以看到程式執行的結果和linux md5sum是一致的.



轉載自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1518312/,如需轉載,請註明出處,否則將追究法律責任。

相關文章