From 0a2cc9c928243b2581083bf20f7f69d13d696148 Mon Sep 17 00:00:00 2001 From: dudaodong Date: Fri, 18 Oct 2024 16:38:39 +0800 Subject: [PATCH] doc: update doc for RandNumberOfLength and GetExeOrDllVersion --- docs/api/packages/fileutil.md | 11 ++++++----- docs/api/packages/random.md | 12 +++++------ docs/en/api/packages/fileutil.md | 34 ++++++++++++++++++++++++++++++++ docs/en/api/packages/random.md | 27 +++++++++++++++++++++++++ fileutil/file_windows.go | 6 ++++-- fileutil/file_windows_test.go | 4 ++-- go.mod | 1 - go.sum | 2 -- random/random.go | 7 ++++--- random/random_test.go | 6 +++--- 10 files changed, 86 insertions(+), 24 deletions(-) diff --git a/docs/api/packages/fileutil.md b/docs/api/packages/fileutil.md index f2af62d..937dfd9 100644 --- a/docs/api/packages/fileutil.md +++ b/docs/api/packages/fileutil.md @@ -52,7 +52,8 @@ import ( - [ReadFile](#ReadFile) - [ChunkRead](#ChunkRead) - [ParallelChunkRead](#ParallelChunkRead) -- [GetVersion](#Version) +- [GetExeOrDllVersion](#GetExeOrDllVersion) +
## 文档 @@ -1077,17 +1078,17 @@ func main() { // 2 } ``` -### GetExeDllVersion +### GetExeOrDllVersion

返回exe,dll文件版本号(仅Window平台).

函数签名: ```go -func GetExeDllVersion(filePath string) (string, error) +func GetExeOrDllVersion(filePath string) (string, error) ``` -示例:[运行](https://go.dev/play/p/s_Tl7lZoAaY) +示例:[运行](todo) ```go package main @@ -1098,7 +1099,7 @@ import ( ) func main() { - v, err := fileutil.GetExeDllVersion(`C:\Program Files\Tencent\WeChat\WeChat.exe`) + v, err := fileutil.GetExeOrDllVersion(`C:\Program Files\Tencent\WeChat\WeChat.exe`) if err != nil { panic(err) } diff --git a/docs/api/packages/random.md b/docs/api/packages/random.md index 9c17959..115744e 100644 --- a/docs/api/packages/random.md +++ b/docs/api/packages/random.md @@ -40,7 +40,7 @@ import ( - [RandStringSlice](#RandStringSlice) - [RandBool](#RandBool) - [RandBoolSlice](#RandBoolSlice) -- [RandNumLen](#RandNumLen) +- [RandNumberOfLength](#RandNumberOfLength)
@@ -524,17 +524,17 @@ func main() { fmt.Println(result) // [true false] (random) } ``` -### RandNumLen +### RandNumberOfLength

生成指定长度的随机数

函数签名: ```go -func RandNumLen(len int) int +func RandNumberOfLength(len int) int ``` -实例:[运行](https://go.dev/play/p/o-VSjPjnILI) +实例:[运行](todo) ```go package main @@ -545,7 +545,7 @@ import ( ) func main() { - i := random.RandNumLen(2) - fmt.Println(i) + i := random.RandNumberOfLength(2) + fmt.Println(i) // 21 (random number of length 2) } ``` \ No newline at end of file diff --git a/docs/en/api/packages/fileutil.md b/docs/en/api/packages/fileutil.md index e572936..e52e05c 100644 --- a/docs/en/api/packages/fileutil.md +++ b/docs/en/api/packages/fileutil.md @@ -52,6 +52,7 @@ import ( - [ReadFile](#ReadFile) - [ChunkRead](#ChunkRead) - [ParallelChunkRead](#ParallelChunkRead) +- [GetExeOrDllVersion](#GetExeOrDllVersion)
@@ -1074,4 +1075,37 @@ func main() { // Jim,21,male // 2 } +``` + +### GetExeOrDllVersion + +

Get the version of exe or dll file on windows.

+ +Signature: + +```go +func GetExeOrDllVersion(filePath string) (string, error) +``` + +Example:[Run](todo) + +```go +package main + +import ( + "fmt" + "github.com/duke-git/lancet/v2/fileutil" +) + +func main() { + v, err := fileutil.GetExeOrDllVersion(`C:\Program Files\Tencent\WeChat\WeChat.exe`) + if err != nil { + panic(err) + } + + fmt.Println(v) + + // Output: + // 3.9.10.19 +} ``` \ No newline at end of file diff --git a/docs/en/api/packages/random.md b/docs/en/api/packages/random.md index ae5a611..5ef0da1 100644 --- a/docs/en/api/packages/random.md +++ b/docs/en/api/packages/random.md @@ -40,6 +40,7 @@ import ( - [RandStringSlice](#RandStringSlice) - [RandBool](#RandBool) - [RandBoolSlice](#RandBoolSlice) +- [RandNumberOfLength](#RandNumberOfLength)
@@ -523,4 +524,30 @@ func main() { result := random.RandBoolSlice(2) fmt.Println(result) // [true false] (random) } +``` + +### RandNumberOfLength + +

Generates a random int number of specified length.

+ +Signature: + +```go +func RandNumberOfLength(len int) int +``` + +Signature:[Run](todo) + +```go +package main + +import ( + "fmt" + "github.com/duke-git/lancet/v2/random" +) + +func main() { + i := random.RandNumberOfLength(2) + fmt.Println(i) // 21 (random number of length 2) +} ``` \ No newline at end of file diff --git a/fileutil/file_windows.go b/fileutil/file_windows.go index fd41b1a..7a2eefe 100644 --- a/fileutil/file_windows.go +++ b/fileutil/file_windows.go @@ -25,8 +25,9 @@ type tagVS_FIXEDFILEINFO struct { FileDateLS uint32 } -// GetExeDllVersion 获取exe或dll文件的版本信息 -func GetExeDllVersion(filePath string) (string, error) { +// GetExeOrDllVersion get the version of exe or dll file on windows. +// Play: todo +func GetExeOrDllVersion(filePath string) (string, error) { // 加载系统dll versionDLL := syscall.NewLazyDLL("version.dll") getFileVersionInfoSize := versionDLL.NewProc("GetFileVersionInfoSizeW") @@ -77,5 +78,6 @@ func GetExeDllVersion(filePath string) (string, error) { minor := fixedInfo.FileVersionMS & 0xFFFF build := fixedInfo.FileVersionLS >> 16 revision := fixedInfo.FileVersionLS & 0xFFFF + return fmt.Sprintf("%d.%d.%d.%d", major, minor, build, revision), nil } diff --git a/fileutil/file_windows_test.go b/fileutil/file_windows_test.go index d6f7ac4..244eeb2 100644 --- a/fileutil/file_windows_test.go +++ b/fileutil/file_windows_test.go @@ -4,8 +4,8 @@ package fileutil import "testing" -func TestGetExeDllVersion(t *testing.T) { - v, err := GetExeDllVersion(`C:\Windows\System32\cmd.exe`) +func TestGetExeOrDllVersion(t *testing.T) { + v, err := GetExeOrDllVersion(`C:\Windows\System32\cmd.exe`) if err != nil { t.Error(err) } diff --git a/go.mod b/go.mod index cca26aa..e5be56c 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,5 @@ go 1.18 require ( golang.org/x/exp v0.0.0-20221208152030-732eee02a75a - golang.org/x/sys v0.5.0 golang.org/x/text v0.9.0 ) diff --git a/go.sum b/go.sum index f1ac8c7..4aeb174 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,4 @@ golang.org/x/exp v0.0.0-20221208152030-732eee02a75a h1:4iLhBPcpqFmylhnkbY3W0ONLUYYkDAW9xMFLfxgsvCw= golang.org/x/exp v0.0.0-20221208152030-732eee02a75a/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= diff --git a/random/random.go b/random/random.go index 9d7dc5f..1705324 100644 --- a/random/random.go +++ b/random/random.go @@ -328,11 +328,12 @@ func UUIdV4() (string, error) { return fmt.Sprintf("%x-%x-%x-%x-%x", uuid[0:4], uuid[4:6], uuid[6:8], uuid[8:10], uuid[10:]), nil } -// RandNumLen 生成一个长度为len的随机数 -// Play: https://go.dev/play/p/jpIalcD5rMo -func RandNumLen(len int) int { +// RandNumberOfLength 生成一个长度为len的随机数 +// Play: todo +func RandNumberOfLength(len int) int { m := int(math.Pow10(len) - 1) i := int(math.Pow10(len - 1)) ret := rand.Intn(m-i+1) + i + return ret } diff --git a/random/random_test.go b/random/random_test.go index 9f0f5e0..eb4a822 100644 --- a/random/random_test.go +++ b/random/random_test.go @@ -362,9 +362,9 @@ func TestRandBoolSlice(t *testing.T) { } }) } -func TestRandNumLen(t *testing.T) { +func TestRandNumberOfLength(t *testing.T) { t.Parallel() - randi := RandNumLen(6) - assert := internal.NewAssert(t, "TestRandNumLen") + randi := RandNumberOfLength(6) + assert := internal.NewAssert(t, "TestRandNumberOfLength") assert.Equal(6, len(strconv.Itoa(randi))) }