Browse Source

不是很好实现

master
viviman 3 years ago
parent
commit
7c337eaf43
  1. 20
      golang_learn/data_func/go_to_file/go_to_dir/获取当前文件或目录下的所有文件或目录信息(包括子目录).go
  2. 21
      golang_learn/data_func/go_to_file/go_to_dir/获取当前目录下的文件或目录信息(不包含多级子目录).go
  3. 24
      golang_learn/data_func/go_to_file/go_to_dir/获取当前目录下的文件或目录名(不包含多级子目录).go
  4. 68
      golang_learn/data_office/get_hy_sql/main.go

20
golang_learn/data_func/go_to_file/go_to_dir/获取当前文件或目录下的所有文件或目录信息(包括子目录).go

@ -0,0 +1,20 @@
package go_to_dir
import (
"fmt"
//"io/ioutil"
//"log"
"os"
"path/filepath"
)
func main() {
pwd, _ := os.Getwd()
//获取当前目录下的所有文件或目录信息
filepath.Walk(pwd, func(path string, info os.FileInfo, err error) error {
fmt.Println(path) //打印path信息
fmt.Println(info.Name()) //打印文件或目录名
return nil
})
}

21
golang_learn/data_func/go_to_file/go_to_dir/获取当前目录下的文件或目录信息(不包含多级子目录).go

@ -0,0 +1,21 @@
package go_to_dir
import (
"fmt"
"io/ioutil"
"log"
"os"
)
func main() {
pwd, _ := os.Getwd()
//获取文件或目录相关信息
fileInfoList, err := ioutil.ReadDir(pwd)
if err != nil {
log.Fatal(err)
}
fmt.Println(len(fileInfoList))
for i := range fileInfoList {
fmt.Println(fileInfoList[i].Name()) //打印当前文件或目录下的文件或目录名
}
}

24
golang_learn/data_func/go_to_file/go_to_dir/获取当前目录下的文件或目录名(不包含多级子目录).go

@ -0,0 +1,24 @@
package go_to_dir
import (
"fmt"
//"io/ioutil"
"log"
"os"
"path/filepath"
)
func main() {
pwd, _ := os.Getwd()
//获取当前目录下的文件或目录名(包含路径)
filepathNames, err := filepath.Glob(filepath.Join(pwd, "*"))
if err != nil {
log.Fatal(err)
}
for i := range filepathNames {
fmt.Println(filepathNames[i]) //打印path
}
}

68
golang_learn/data_office/get_hy_sql/main.go

@ -1,12 +1,78 @@
package main package main
import (
"io/ioutil"
"log"
"os"
"strings"
"time"
)
/* /*
思路: 脚本按照顺序拼接旧文件按照 utf8 格式清空 思路: 脚本按照顺序拼接旧文件按照 utf8 格式清空
*/ */
import ()
var splitStr = "/* 202"
var endName = ".sql"
var endFileName string
var History = "/history/"
var DBStr = []string{"/MYSQL/update", "/ORACLE/update", "/SHENTONG/update", "/DM/update", "/KingBase/update"}
var mapStr = make(map[string]string)
var mapInt = make(map[int8]string)
//存在所有对象信息 - 集合 //存在所有对象信息 - 集合
func main() { func main() {
// Todo 合并的SQL文件名称,超过1000行,分割多个文件
endFileName = History + time.Now().Format("20060102") + endName
// aaa := os.Args //当前目录数组
var aaa string = "/Users/zhangxianwei/IDEA/hy_sql"
for i := range DBStr {
kkk := aaa + DBStr[i]
getAllFile(kkk)
}
for s := range mapStr {
log.Println(s, mapStr[s])
}
}
func getAllFile(pwd string) {
//获取文件或目录相关信息
fileInfoList, err := ioutil.ReadDir(pwd)
if err != nil {
log.Fatal(err)
}
for i := range fileInfoList {
if strings.HasSuffix(fileInfoList[i].Name(), endName) {
path := pwd + "/" + fileInfoList[i].Name()
s := read(path)
split := strings.Split(s, splitStr)
for i2 := range split {
// log.Println(split[i2], "\n")
mapStr[path] = s
s2 := split[i2]
log.Println(s2)
}
}
}
}
func read(path string) string {
f, _ := os.Open(path)
all, _ := ioutil.ReadAll(f)
return string(all)
}
/**
write 输出到文件
*/
func write(s, path string) {
file3, _ := os.Create(path)
file3.WriteString(s)
file3.Close()
} }

Loading…
Cancel
Save