package main
import (
"fmt"
"io"
"os"
)
func Exists(path string) bool {
_, err := os.Stat(path)
if err != nil {
if os.IsExist(err) {
return true
}
return false
}
return true
}
func appendToFile(f *os.File, content string) error {
// 以只写的模式,打开文件
// 查找文件末尾的偏移量
n, _ := f.Seek(0, os.SEEK_END)
// 从末尾的偏移量开始写入内容
_, err := f.WriteAt([]byte(content), n)
return err
}
func main() {
fmt.Printf("Please input a file name to save content:")
var fileName string
fmt.Scanln(&fileName)
if Exists(fileName) {
os.Remove(fileName)
}
f, _ := os.Create(fileName)
defer f.Close()
saveContentFile, err := os.OpenFile(fileName, os.O_WRONLY, 0644)
if err != nil {
fmt.Println("Save Content file create failed. err: " + err.Error())
}
fmt.Printf("Please input the list file dir name:")
var text string
fmt.Scanln(&text)
fmt.Println(text)
listfileDir, err2 := os.Open(text)
if err2 != nil {
panic("Read dir error, [" + err2.Error() + "]")
}
readCurrent := func(ch *chan string) {
defer close(*ch)
infos, err := listfileDir.Readdir(1000)
if err != io.EOF {
for _, info := range infos {
*ch <- info.Name()
}
}
}
for i := 0; i < 10000; i++ {
ch := make(chan string, 1000)
go readCurrent(&ch)
for j := 0; j < 1000; j++ {
content, err := <-ch
if err != false {
appendToFile(saveContentFile, content+"\n")
}
}
}
defer saveContentFile.Close()
}
使用如下语句在Linux系统上面运行,Windows也兼容。
image.png
运行完成之后,查看记录文件。
image.png
网友评论