成都网站建设设计

将想法与焦点和您一起共享

go语言中的目录 golang 目录结构组织

golang如何创建目录

golang中关于目录与文件名等操作都在os这个包中,具体的创建目录都是通过Mkdir和MkdirAll这2个函数来实现的,这两个函数用法一致

在唐河等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站制作、成都做网站 网站设计制作按需网站建设,公司网站建设,企业网站建设,品牌网站建设,全网营销推广,成都外贸网站建设公司,唐河网站建设费用合理。

os.Mkdir(dirName string, perm FileMode)

dirName即要创建的目录(文件夹路径),可以是绝对路径,也可以是相对路径(相对于GOPATH)

perm表示创建的目录的权限,如0777(读r权限值为4,写权限w值为2,执行权限x值为1)

如:我要在/data/program/goapp这个目录下创建一个golang这个子目录,示例如下:

package main

import (

"os"

"fmt"

)

func main() {

err := os.Mkdir("/data/program/goapp/golang", 0666)

if err != nil {

fmt.Println(err)

}

}

注:Mkdir和MkdirAll的区别

Mkdir创建目录,它的父级目录必须是存在的,不然创建会失败

MkdirAll可以递归创建目录,即只要根目录存在即可,如下:

err := os.MkdirAll("/data/program/goapp/golang/test/hello", 0766)

if err != nil {

fmt.Println(err)

}

本例中:/data/program/goapp是已经存在的目录,而子目录golang/test/hello是不存在,此时要使用MkdirAll来创建

4.1 Go语言中包(Packages)基础知识

先看一下目录结构,注意这里的src名称是必须的,go在设置了GOPATH后,默认会添加src去寻找package,暂未查询是否有方法不按照src查询

根据上面的描述,Go语言中通过包中函数的名称来区分公共函数和私有函数,我们在main函数中是无法调用myPrivateFunc的

此时如果执行通过go run方式执行,会看到如下的提示信息,这与大部分语言对于包管理方式相关,所以我们通过两种不同的方法来让代码执行起来

返回如下,这里面对我们后续执行有影响的两个参数GO111MODULE和GOPATH

如果要使用gopath模式引用包,则需要关闭mod模式

设置GOPATH为当前路径,即main.go所在的路径

此时再查看go env时,GOPATH已经发生改变

我们再次尝试执行代码

可以看到public函数被调用

go语言递归扫描指定目录下文件

使用go语言递归查找指定目录下的文件,根据正则匹配筛选出需要的文件,并且忽略指定的目录

先使用 ioutil.ReadDir 遍历出指定目录下的文件,再递归进目录中遍历,问题的关键在于识别出文件为目录, fs.FileInfo 中有一个 IsDir() 函数可以识别是否是目录

正则匹配使用 regexp.MatchString ,regexp中有很多正则操作的工具,如根据正则替换字符串中的指定字符

Go语言中如何设置包的查找路径

二进制包安装的话:如果安装在了默认位置例如/usr/local/go (Windows系统:c:\Go)这个时候可以不需要设置GOROOT,如果改变了安装的这个默认目录,那么就需要设置GOROOTGOROOT的概念有点Go安装目录的意思GOPATH是一个开发环境目录的意思,下面必须包含bin、pkg、src,然后再src下面新建项目就可以了你在没有设置GOPATH的情况下,也可以把项目建在GOROOT/src下面,其实和GOPATH的概念类似


本文名称:go语言中的目录 golang 目录结构组织
文章网址:http://chengdu.cdxwcx.cn/article/dohgsji.html