err = filepathWalkDirfmtSprintfss info2Path kvm funcpath string d fsDirEntry err error error if err != nil loggerErrorerrError return err if dIsDir count++ retu
根据提供的代码,统计的是@kvm目录下的子目录个数。如果@kvm目录下只有一个文件夹,那么count的值应该是1,而不是2。
可能的原因是filepath.WalkDir函数会遍历指定目录下的所有子目录,包括隐藏文件夹或系统文件夹。所以,如果@kvm目录下除了你可见的文件夹之外还存在其他隐藏的文件夹,那么count的值会增加。
你可以在遍历过程中打印出每个子目录的路径,以便排查问题:
err = filepath.WalkDir(fmt.Sprintf("%s/%s", info2.Path, "@kvm"), func(path string, d fs.DirEntry, err error) error {
if err != nil {
logger.Error(err.Error())
return err
}
fmt.Println(path) // 打印子目录路径
if d.IsDir() {
count++
}
return nil
})
这样你就可以看到所有遍历到的子目录路径,以确定是否存在其他隐藏的文件夹导致count值增加。
原文地址: http://www.cveoy.top/t/topic/hQpX 著作权归作者所有。请勿转载和采集!