go语言创建递归文件夹 go递归生成树形结构

golang如何创建目录

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

创新互联建站是一家专业提供婺源企业网站建设,专注与做网站、网站设计html5、小程序制作等业务。10年已为婺源众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

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来创建

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

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

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

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

怎么在HDFS文件系统的根目录下创建递归目录

从fs -ls从列出来的文件看,这个文件夹/user/root/input是通过root用户创建的。说明你在从本地文件系统拷贝input目录到hdfs系统的时候,不是采用的hadoop用户,而是用root用户执行的拷贝命令,你可能忘记切换用户了,可以删除现在的input目录(采用root用户运行hadoop的删除命令,或者不删除也没关系),重新使用hadoop用户把input导入到hdfs系统中试试看。

另外,实际上应用的时候是需要关注hdfs中文件的目录结构的。你现在采用的是默认的方式,缺省会放/user/${user.name}目录下。

在把本地文件导入到hdfs的时候,是可以指定传到什么目录的,比如:

#创建input目录

sh bin/hadoop fs -mkdir /user/hadoop/input

#把myfile.txt导入到hdfs的input目录下

sh bin/hadoop fs –put /usr/hadoop/mydata/myfile.txt /user/hadoop/input

关于在go语言中导入当前文件夹的步骤

1.先把要导入的包go build - go install

2.接着在要导入的方法中以: 项目名 / 导入的文件名  的形式导入即可(如下方test(项目名) / chiid(文件名))


网页名称:go语言创建递归文件夹 go递归生成树形结构
浏览地址:http://scyanting.com/article/dosepjg.html