代码拉取完成,页面将自动刷新
// 版权归GoFrame作者(https://goframe.org)所有。保留所有权利。
//
// 本源代码形式受MIT许可证条款约束。
// 如果未随本文件一同分发MIT许可证副本,
// 您可以在https://github.com/gogf/gf处获取。
// md5:a9832f33b234e3f3
package 文件类
import (
"bytes"
"fmt"
garray "gitee.com/go_888/goframe/container/garray"
gerror "gitee.com/go_888/goframe/errors/gerror"
)
// X查找 通过名称 `name` 在以下路径中搜索文件,按照优先级进行:优先搜索路径(prioritySearchPaths)、当前工作目录(Pwd())、自身目录(SelfDir())和主包路径(MainPkgPath())。如果找到,则返回文件的绝对路径;如果没有找到,则返回空字符串。
// md5:4251b6145a87bd38
func X查找(文件名 string, 优先级查找路径 ...string) (路径 string, 错误 error) {
// 检查它是否是绝对路径。 md5:fcbf7e8f8e3d02b7
路径 = X取绝对路径且效验(文件名)
if 路径 != "" {
return
}
// Search paths array.
array := garray.X创建文本()
array.X弃用_Append(优先级查找路径...)
array.X弃用_Append(X取当前工作目录(), X取当前进程目录())
if path := X取main目录(); path != "" {
array.X弃用_Append(path)
}
// Remove repeated items.
array.X去重()
// Do the searching.
array.X遍历读锁定(func(array []string) {
path := ""
for _, v := range array {
path = X取绝对路径且效验(v + X常量_文件_系统分隔符 + 文件名)
if path != "" {
路径 = path
break
}
}
})
// 如果搜索失败,它将返回格式化的错误信息。 md5:fb9f11e1e7a4e8fc
if 路径 == "" {
buffer := bytes.NewBuffer(nil)
buffer.WriteString(fmt.Sprintf(`cannot find "%s" in following paths:`, 文件名))
array.X遍历读锁定(func(array []string) {
for k, v := range array {
buffer.WriteString(fmt.Sprintf("\n%d. %s", k+1, v))
}
})
错误 = gerror.X创建(buffer.String())
}
return
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。