如何统计文件夹或者文件代码行数

如何统计文件夹或者文件代码行数

代码

package main

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

var (
	sum int64
)

// 示例 
// (1)交叉编译:
// (2)使用:./app.exe  countline /d/projects/xxx go
func main() {
	if len(os.Args) < 3 {
	   fmt.Println("countline [Dir] [extention]")
	   return
	}
	filepath.Walk(os.Args[2], func(path string, info os.FileInfo, err error) error {
	   if getExt(path) == os.Args[3] {
	       fmt.Println(path)
	       count := countLine(path)
	       fmt.Println("lines: ", count)
	       sum = sum + int64(count)
	   }
	   return nil
	})
	fmt.Println("total lines: ", sum)
}

//获取得文件的扩展名,最后一个.后面的内容
func getExt(f string) (ext string) {
	//  fmt.Println("ext:", f)
	index := strings.LastIndex(f, ".")
	data := []byte(f)
	for i := index + 1; i < len(data); i++ {
		ext = ext + string([]byte{data[i]})
	}
	return
}

func countFileLine(name string) (count int64, err error) {
	fmt.Println("count file:", name)
	data, err := ioutil.ReadFile(name)
	if err != nil {
		return
	}
	count = 0
	for i := 0; i < len(data); i++ {
		if data[i] == '\n' {
			count++
		}
	}
	fmt.Println("line:", count)
	return
}

func countLine(fileName string) int {
	file, err := os.Open(fileName)
	if err != nil {
		return 0
	}
	defer file.Close()
	fd := bufio.NewReader(file)
	count := 0
	for {
		_, err := fd.ReadString('\n')
		if err != nil {
			break
		}
		count++

	}
	fmt.Println(count)
	return count
}

参考

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在VS(Visual Studio)中,统计当前文件夹下的代码行数可以通过以下步骤实现: 1. 打开VS,进入解决方案资源管理器,该窗口列出了解决方案中所有的项目和文件夹。 2. 找到要统计代码行数文件夹。如果文件夹不在解决方案中,可以通过右键单击解决方案资源管理器中的项目,选择“添加”->“现有项”来添加文件夹。 3. 在文件夹上右键单击,选择“搜索”。此时会打开“搜索文件夹”对话框。 4. 在对话框中设置搜索条件。选择“包含文件”并输入文件类型的筛选条件,比如*.cpp表示所有的C++源代码文件。可以同时指定多种文件类型,用分号分隔。 5. 点击“查找”按钮开始搜索文件夹下的文件。 6. 搜索完成后,VS会列出所有符合条件的文件,并显示在搜索结果窗口中。在搜索结果窗口中,可以看到每个文件的路径和名称。 7. 在搜索结果窗口中,右键单击文件列表的任一项,选择“打开文件所在位置”可以进一步定位到具体的文件所在的文件夹。 8. 最后,使用操作系统的文件管理器,比如Windows的资源管理器,可以查看具体文件夹代码文件的总行数。 通过以上步骤,可以在VS中统计当前文件夹下的代码行数。这个方法适用于需要在VS环境下进行代码行数统计的情况,能够方便地浏览和查找代码文件,并查看统计结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值