获取golang中当前迭代的完整目录

获取golang中当前迭代的完整目录,go,filepath,Go,Filepath,新的去,不能解决这个 我得到了一个包含很多子文件夹的文件夹。子文件夹包含图片和视频(jpg/mp4),还包含json文件等元数据。(谷歌导出,不问) 我要做的是编写一个简单的脚本,它遍历所有的子文件夹,复制所有的jpg和mp4文件,其余的都保留 我的问题是,我无法获得完整的文件路径来复制文件。当迭代子文件夹中的文件时,“os.FileInfo”命令不会给出完整路径,我也找不到其他方法来获取当前正在运行的子文件夹的信息 非常感谢:) var rootPath=“path\\to\\root” fu

新的去,不能解决这个

我得到了一个包含很多子文件夹的文件夹。子文件夹包含图片和视频(jpg/mp4),还包含json文件等元数据。(谷歌导出,不问)

我要做的是编写一个简单的脚本,它遍历所有的子文件夹,复制所有的jpg和mp4文件,其余的都保留

我的问题是,我无法获得完整的文件路径来复制文件。当迭代子文件夹中的文件时,“os.FileInfo”命令不会给出完整路径,我也找不到其他方法来获取当前正在运行的子文件夹的信息

非常感谢:)

var rootPath=“path\\to\\root”
func main(){
迭代(根路径)
}
func迭代(路径字符串){
filepath.Walk(路径,func(路径字符串,info os.FileInfo,err error)错误{
如果错误!=零{
log.Fatalf(err.Error())
}
if strings.Compare(filepath.Ext(info.Name()),“.jpg”)==0||
strings.Compare(filepath.Ext(info.Name()),“.mp4”)==0{
var src=?+info.Name()
var dst=“path\\to\\newdir”+info.Name()
副本(src、dst)
}
归零
})
}

类似的方法应该可以:

func iterate(path string) {
filepath.Walk(path, func(path string, info os.FileInfo, err error) error {
    if err != nil {
        log.Fatalf(err.Error())
    }

    if !info.IsDir() && (strings.HasSuffix(info.Name(), ".jpg") || strings.HasSuffix(info.Name(), ".mp4")){

        dst := "path\\to\\newdir" + info.Name()
        //log.Println(path)
        Copy(path, dst)
    }
    return nil
})

}

路径参数应包含完整的文件名。请注意,您将函数值传递给
filepath.Walk()
,该函数具有
path
第一个参数(您将其命名为
iteration()
的第一个参数,但仍然如此),这应该是您所需要的。
func iterate(path string) {
filepath.Walk(path, func(path string, info os.FileInfo, err error) error {
    if err != nil {
        log.Fatalf(err.Error())
    }

    if !info.IsDir() && (strings.HasSuffix(info.Name(), ".jpg") || strings.HasSuffix(info.Name(), ".mp4")){

        dst := "path\\to\\newdir" + info.Name()
        //log.Println(path)
        Copy(path, dst)
    }
    return nil
})