2015-10-04 75 views
2

我試圖從用戶獲取用戶文件的用戶權限作爲字符串,並將其轉換爲os.FileMode類型。Golang - 將uint轉換爲os.FileMode

因此,我獲得許可"0644"並將其轉換後,它變成644。我使用這個作爲ioutil.WriteFile的參數。

這就是我正在做的。

data["perm"] = "0644" 
tempval, err2 = strconv.ParseUint(data["Perm"], 10, 32) 
// tempval is 644 

我沒有得到正確的權限。

我得到--w----r--而不是-rw-r--r-- 我一直在試圖找到一種解決方法。

那麼,我該如何達到這個目標呢?

回答

4
tempval, err2 = strconv.ParseUint(data["Perm"], 10, 32) 

您明確要求在此處輸入10。如果你想要base 8(這是unix文件模式的傳統基礎),那麼你需要在第二個參數中使用8。或者更好的是,使用基地0,並且由於前導0,它會自動選擇基數8.請參閱strconv.ParseInt文檔瞭解「基數0」的工作原理。

+0

謝謝:)完美的工作。 – GokulSrinivas