彼らだけでは、コードを理解し、
書かれたより腫れて、後でそれを最適化します。
それは定期的に毎日、またはすべての世代のパッケージ、収集情報パッケージである場合には、
APIインタフェースを行くために送ります
次に、データ解析のために。
utils.go
パッケージメイン インポート( "BUFIO" "FMT" "IO" "IO / ioutil" "OS" 「パス/ファイルパス」 ) FUNC GetAllFile(パス名文字列、ファイル[]の文字列)([]の文字列、エラー){ fromSlash:= filepath.FromSlash(パス名) //fmt.Println(fromSlash) RD、ERR = ioutil.ReadDir(fromSlash) {ERR!= nilの場合 //log.LOGGER("Error").Error("read DIR「N \%vを失敗し、ERR) fmt.Println( "dirは失敗読み:"、ERR) ERR、ファイルを返します } _、Fiのための:=レンジRD { もしfi.IsDir(){ fullDir:= filepath.Join(fromSlash、fi.Name()) ファイル、ERR = GetAllFile(fullDir、ファイル) {ERR!= nilの場合 fmt.Println( "dirは失敗読み:"、ERR) //log.LOGGER("Error").Error("readは失敗DIR:体積%\ n」は、ERRを) ERR、ファイルを返します } }他{ fullName = filepath.Join(fromSlash、fi.Name()) ファイル=アペンド(ファイル、のfullName) } } リターンファイルはnil } WRITETOFILE FUNC(ファイル名の文字列、コンテンツの[]の文字列)エラー{ F、ERR:os.OpenFile =(ファイル名、os.O_WRONLY | os.O_TRUNC | os.O_CREATE、0644) {ERR!= nilの場合 fmt.Printfは( "マップファイルのエラーを作成します。%vを\ n" は、ERR) リターンERR } 延期f.Close() W:= bufio.NewWriter(F) _、項目の:=範囲コンテンツ{ fmt.Fprintln(W、項目) } リターンw.Flush() } ReadFromFile(ファイル名の文字列)([]の文字列、エラー){FUNC コンテンツ:= []の文字列{} Fiの、ERR = os.Open(filename)で {ERR!= nilの場合 fmt.Printf( "エラー:%sの\ n" は、ERR) ERR、nilを返します } 延期fi.Close() BR:= bufio.NewReader(FI) ために { アイテム、_、C:= br.ReadLine() もしC == io.EOF { ブレーク } コンテンツ=アペンド(コンテンツ、文字列(アイテム)) } コンテンツ、nilを返します }
main.go
パッケージメイン インポート( "FMT" ) FUNCのmain(){ VAR oldContent、newContent []の文字列 ログファイル:= "D:\\ TEMP \\ log.txtという" oldContent、ERR = ReadFromFile(ログファイル) {ERR!= nilの場合 パニック(ERR) } =範囲oldContent {I、V用 fmt.Println(I、V) } newContent、ERR = GetAllFile( "D:\\ソフトウェア"、newContent) {ERR!= nilの場合 パニック(ERR) } ERR = WRITETOFILE(ログファイル、newContent) {ERR!= nilの場合 パニック(ERR) } }