基本的に怠Diary

学習ログを残したい

お前ほんとファイルサーチ()作るの好きだな

package main

import (
	"fmt"
	"io/ioutil"
	"path/filepath"
	"strings"
)

func main() {
	var dirPath,word string
	fmt.Println("ファイル検索 一行目にファイルパス、二行目に検索ワード")
	fmt.Scan(&dirPath)
	fmt.Scan(&word)

	listFiles(dirPath,word)
}
//ディレクトリパスを渡すと再帰的に検索してくれるよ
func listFiles(path,word string){
	fls,_ := ioutil.ReadDir(path)
	for _,fi := range fls {
		fullPath := filepath.Join(path,fi.Name())
		cnt := strings.Count(fullPath,"/")
		if strings.Contains(fi.Name(),word){
			fmt.Println(repeatStr(" ",cnt) + fullPath)
		}
		if fi.IsDir() {
			listFiles(fullPath,word)
		}
	}
}
//strをcntの回数分足したstringを返すよ
func repeatStr(str string,cnt int) string {
	var result string
	for i := 0;i < cnt;i++{
		result += str
	}
	return result
}

ioutil便利すぎわろまし




Javaで既に作ったことがあったりしたのですぐ作ることができました。

今の所はなんか使いやすいシェルスクリプトみたいな立ち位置なのでもっと有効に活用したいですが

多分そうなるのは当分先になりそうです。