package main

import (
"bytes"
"fmt"
"os"
"os/exec"
"path/filepath"
"sync"
) type jieguo struct {
go_num int
Lock sync.Mutex
} var searchName string = os.Args[1]
var search_result chan string = make(chan string, 1)
var nums chan int = make(chan int, 1)
var x jieguo = jieguo{go_num: 0} func main() {
list := []string{"D:","E:","F"}
for _, i := range list {
fmt.Println(i, searchName)
go pan(i)
}
for {
select {
case x := <-search_result:
fmt.Println(x)
case y := <-nums:
if y == 0 {
os.Exit(0)
}
}
}
} func pan(path string) {
a := exec.Command("ls", path)
result, e := a.Output()
if e != nil {
fmt.Println(e)
}
z := bytes.Split(result, []byte{10})
for _, i := range z[:len(z)-1] {
s := path + "\\" + string(i)
fmt.Println(s)
e = os.Chdir(s)
if e == nil {
x.Lock.Lock()
x.go_num = x.go_num + 1
x.Lock.Unlock()
go func() {
filepath.Walk(s, walk)
x.Lock.Lock()
x.go_num = x.go_num - 1
nums <- x.go_num
x.Lock.Unlock()
}()
} else {
fmt.Println(e)
if string(i) == searchName {
fmt.Println(s)
}
}
}
} func walk(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if !info.IsDir() && info.Name() == searchName {
search_result <- path
return nil
}
return nil
}

最新文章

  1. 为C# as 类型转换及Assembly.LoadFrom埋坑!
  2. CMD的几个常用API
  3. Android 自定义View 总结
  4. Adobe Dreamweaver(DW)
  5. windows下的mysql客户端mysqlworkbench链接虚拟机上CentOS的mysql服务器
  6. License Manager 10.3启动失败解决方法
  7. JavaScript prototype 属性
  8. 【转】图片IMG标记的alt属性和title属性的使用
  9. (3)java棧
  10. 页面mask css
  11. cf C. Divisible by Seven
  12. mosquitto在Linux环境下的部署/安装/使用/测试
  13. isset() 与 empty() 的区别
  14. sed 命令详解
  15. C++获取系统当前时间
  16. java编写双色球源代码。-----系统作为彩票双色球生成器,模拟机选一注双色球的彩票号码
  17. linux Tcpdump使用方法
  18. .netcore2.1使用swagger显示接口说明文档
  19. CSS怎么在项目里引入自定义字体(@font-face)
  20. idea+maven下jrebel的安装破解

热门文章

  1. JAVA 重载方法,参数为NULL时,调用的处理 (精确性原则)
  2. 修改UTC时间
  3. ASP.NET-权限管理五张表
  4. JSON数据的生成与解析
  5. Node.js 博客实例(一)简单博客
  6. 使用默认system_health分析死锁(Deadlock)
  7. Android应用内加载pdf的方法?
  8. nyoj--1237--最大岛屿(dfs+数据处理)
  9. [jzoj 4668] [NOIP2016提高A组模拟7.19] 腐败 解题报告(质数分类+慢速乘)
  10. express+模板引擎构建项目时遇到的几个小问题