mirror of
https://github.com/unti-io/go-utils.git
synced 2025-10-17 05:41:20 +08:00
v1.3.3
This commit is contained in:
2
go.mod
2
go.mod
@@ -4,7 +4,7 @@ go 1.20
|
||||
|
||||
require (
|
||||
github.com/json-iterator/go v1.1.12
|
||||
github.com/spf13/cast v1.5.0
|
||||
github.com/spf13/cast v1.6.0
|
||||
github.com/spf13/viper v1.15.0
|
||||
golang.org/x/crypto v0.7.0
|
||||
)
|
||||
|
2
go.sum
2
go.sum
@@ -156,6 +156,8 @@ github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM=
|
||||
github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ=
|
||||
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
|
||||
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
|
||||
github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0=
|
||||
github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
|
||||
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
|
||||
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
|
||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||
|
@@ -6,6 +6,7 @@ func init() {
|
||||
Array.Remove = ArrayRemove
|
||||
Array.Unique = ArrayUnique[any]
|
||||
Array.Empty = ArrayEmpty[any]
|
||||
Array.Reverse = ArrayReverse[any]
|
||||
Array.MapWithField = ArrayMapWithField
|
||||
Map.WithField = MapWithField[map[string]any]
|
||||
Map.WithoutField = MapWithoutField[map[string]any]
|
||||
@@ -23,6 +24,7 @@ var Array struct {
|
||||
Remove func(array []string, args ...string) (slice []string)
|
||||
Unique func(array []any) (slice []any)
|
||||
Empty func(array []any) (slice []any)
|
||||
Reverse func(array []any) (slice []any)
|
||||
MapWithField func(array []map[string]any, field any) (slice []any)
|
||||
}
|
||||
|
||||
|
@@ -70,3 +70,11 @@ func ArrayMapWithField(array []map[string]any, field any) (slice []any) {
|
||||
|
||||
return slice
|
||||
}
|
||||
|
||||
// ArrayReverse - 数组反转
|
||||
func ArrayReverse[T any](array []T) (slice []T) {
|
||||
for i, j := 0, len(array)-1; i < j; i, j = i+1, j-1 {
|
||||
array[i], array[j] = array[j], array[i]
|
||||
}
|
||||
return array
|
||||
}
|
||||
|
@@ -281,7 +281,12 @@ func (this *FileStruct) Download(path ...any) (result *FileResponse) {
|
||||
this.response.Error = err
|
||||
return this.response
|
||||
}
|
||||
defer saveFile.Close()
|
||||
defer func(saveFile *os.File) {
|
||||
err := saveFile.Close()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}(saveFile)
|
||||
|
||||
_, err = io.Copy(saveFile, resp.Body)
|
||||
if err != nil {
|
||||
@@ -855,3 +860,40 @@ func (this *FileStruct) extract(file *zip.File, dir string) (err error) {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Rename 重命名文件
|
||||
func (this *FileStruct) Rename(path ...any) (result *FileResponse) {
|
||||
|
||||
if len(path) != 0 {
|
||||
this.request.Path = cast.ToString(path[0])
|
||||
}
|
||||
|
||||
if Is.Empty(this.request.Path) {
|
||||
this.response.Error = errors.New("文件路径不能为空")
|
||||
return this.response
|
||||
}
|
||||
|
||||
if Is.Empty(this.request.Name) {
|
||||
this.response.Error = errors.New("文件名不能为空")
|
||||
return this.response
|
||||
}
|
||||
|
||||
// 判断文件是否存在
|
||||
if _, err := os.Stat(this.request.Path); os.IsNotExist(err) {
|
||||
this.response.Error = err
|
||||
return this.response
|
||||
}
|
||||
|
||||
// 重命名文件 - 放在同一个目录下
|
||||
err := os.Rename(this.request.Path, filepath.Dir(this.request.Path)+"/"+this.request.Name)
|
||||
if err != nil {
|
||||
this.response.Error = err
|
||||
return this.response
|
||||
}
|
||||
|
||||
this.response.Text = "1"
|
||||
this.response.Result = true
|
||||
this.response.Byte = []byte{1}
|
||||
|
||||
return this.response
|
||||
}
|
||||
|
Reference in New Issue
Block a user