【golang】并发遍历指定目录下的所有文件大小
这篇博文旨在写一个遍历指定目录下的所有文件大小的demo,最后打印出该目录所占的空间大小,还会拿没有使用goroutine的情况下, 计算所花费的时间。
先上一个没有使用goroutine的版本
package main
import (
"sync"
"time"
"fmt"
"path/filepath"
"os"
"log"
"io/ioutil"
)
const (
//goTest目录
GO_TEST_DIR_PATH = "/Users/haodawang/Documents/tests"
)
var waitGroup sync.WaitGroup
var ch = make(chan struct{}, 1)
/*
* 计算整个目录所占磁盘大小
*/
func dirents(path string) ([]os.FileInfo, bool) {
entries, err := ioutil.ReadDir(path)
if err != nil {
log.Fatal(err)
return nil, false
}
return entries, true
}