码迷,mamicode.com
首页 > 其他好文 > 详细

为下一个项目作准备,先写客户端的前半部分

时间:2019-12-11 23:38:37      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:%s   break   接口   string   发送   UNC   ==   temp   port   

代码只有自己懂了,

写得比较肿,以后再优化吧。

就是每天定期,或是每次生成软件包时,收集软件包的信息,

发送到go的api接口,

然后,再作数据分析。

utils.go

package main

import (
	"bufio"
	"fmt"
	"io"
	"io/ioutil"
	"os"

	"path/filepath"
)

func GetAllFile(pathname string, files []string) ([]string, error) {
	fromSlash := filepath.FromSlash(pathname)
	//fmt.Println(fromSlash)
	rd, err := ioutil.ReadDir(fromSlash)
	if err != nil {
		//log.LOGGER("Error").Error("read dir fail %v\n", err)
		fmt.Println("read dir fail:", err)
		return files, err
	}
	for _, fi := range rd {
		if fi.IsDir() {
			fullDir := filepath.Join(fromSlash, fi.Name())
			files, err = GetAllFile(fullDir, files)
			if err != nil {
				fmt.Println("read dir fail:", err)
				//log.LOGGER("Error").Error("read dir fail: %v\n", err)
				return files, err
			}
		} else {
			fullName := filepath.Join(fromSlash, fi.Name())
			files = append(files, fullName)
		}
	}
	return files, nil

}

func WritetoFile(fileName string, content []string) error {
	f, err := os.OpenFile(fileName, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0644)
	if err != nil {
		fmt.Printf("create map file error: %v\n", err)
		return err
	}
	defer f.Close()

	w := bufio.NewWriter(f)

	for _, item := range content {
		fmt.Fprintln(w, item)
	}
	return w.Flush()
}

func ReadFromFile(fileName string) ([]string, error) {
	content := []string{}
	fi, err := os.Open(fileName)
	if err != nil {
		fmt.Printf("Error: %s\n", err)
		return nil, err
	}
	defer fi.Close()

	br := bufio.NewReader(fi)
	for {
		item, _, c := br.ReadLine()
		if c == io.EOF {
			break
		}
		content = append(content, string(item))
	}
	return content, nil
}

  

main.go

package main

import (
	"fmt"
)

func main() {
	var oldContent, newContent []string
	logFile := "D:\\temp\\log.txt"

	oldContent, err := ReadFromFile(logFile)
	if err != nil {
		panic(err)
	}
	for i, v := range oldContent {
		fmt.Println(i, v)
	}

	newContent, err = GetAllFile("D:\\software", newContent)
	if err != nil {
		panic(err)
	}
	err = WritetoFile(logFile, newContent)
	if err != nil {
		panic(err)
	}

}

  技术图片

为下一个项目作准备,先写客户端的前半部分

标签:%s   break   接口   string   发送   UNC   ==   temp   port   

原文地址:https://www.cnblogs.com/aguncn/p/12026381.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!