开一个新书《Hands-On System Programming with Go》,系统的了解一下,

这方面的东东,以前用C语言实现过,

现在用GO,重新来!!

package main

import (
	"fmt"
	"os"
	"path/filepath"
)

func main() {
	wd, err := os.Getwd()
	if err != nil {
		fmt.Println(err)
		return
	}

	fmt.Println("starting dir:", wd)

	if err := os.Chdir("d:\\"); err != nil {
		fmt.Println(err)
		return
	}

	if wd, err = os.Getwd(); err != nil {
		fmt.Println(err)
		return
	}

	fmt.Println("final dir:", wd)

	if len(os.Args) != 2 {
		fmt.Println("Please specify a path.")
		return
	}

	root, err := filepath.Abs(os.Args[1])
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println("listing files in ", root)
	var c struct {
		files int
		dirs  int
	}

	filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
		if info.IsDir() {
			c.dirs++
		} else {
			c.files++
		}
		fmt.Println("-", path)
		return nil
	})

	fmt.Printf("Total: %d files in %d directiories.", c.files, c.dirs)

}

  

最新文章

  1. sql 笔记(mysql)
  2. jsoup
  3. INBOUND_CONNECT_TIMEOUT与SQLNET.INBOUND_CONNECT_TIMEOUT小结
  4. map find 是线程安全的吗
  5. std::map 自定义排序
  6. JavaScript备忘录-闭包
  7. ios App 打包
  8. 启用EXCHANGE反垃圾邮件功能和重建EXCHANGE邮件系统帐号
  9. HTML5 FileReader读取Blob对象API详解
  10. spring源码
  11. [傻瓜版] Redis在Windows下的开发环境配置步骤
  12. 【IDEA填坑】springboot整合ssm框架
  13. 201771010141 周强《面向对象设计 java》第十五周实验总结
  14. 闲话Pipeline In Maya
  15. UVC 驱动调用过程与驱动框架的简单分析
  16. 条件分支SQL语句<一> Case When
  17. SpringBoot实战之SpringBoot自动配置原理
  18. JSON.parse() 方法解析一个JSON字符串
  19. Docker 监控的一点想法
  20. Linux useradd 与 adduser的区别, /sbin/nologin 与 /bin/bash

热门文章

  1. Ansible Playbooks 介绍 和 使用 一
  2. python小知识课堂
  3. MQTT版本升级过程及源码解析
  4. .Net Core3.1下使用Swagger搭建web api项目
  5. PyCharm 2019.3激活破解教程(永久)
  6. PHP命令空间namespace及use的用法
  7. 图库网站Unsplash高清原图爬虫【华为云技术分享】
  8. 使用modelarts部署bert命名实体识别模型
  9. 阿里巴巴的 Kubernetes 应用管理实践经验与教训
  10. ASP.NET Core 选项模式源码学习Options IOptions(二)