根据提供的代码,统计的是@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值增加。

err = filepathWalkDirfmtSprintfss info2Path kvm funcpath string d fsDirEntry err error error 					if err != nil 						loggerErrorerrError						return err										if dIsDir 						count++										retu

原文地址: http://www.cveoy.top/t/topic/hQpX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录