为了账号安全,请及时绑定邮箱和手机立即绑定

重命名非空文件夹

重命名非空文件夹

Go
慕村225694 2022-01-04 15:43:20
我正在尝试使用os.Rename(). 这是错误: directory not empty。是否可以强制重命名非空文件夹?package mainimport (    "path/filepath"    "log"    "os"    "strings")var PATH = "dir/dir/"/func main() {    err := filepath.Walk(PATH, printDir)    if err != nil {        log.Fatal(err)    }}func printDir(path string, info os.FileInfo, err error) error {    if err != nil {        log.Fatal(err)    }    if info.IsDir() {        arr := strings.Split(info.Name(), " ")        if len(arr) > 1 {            err := os.Rename(PATH + info.Name(), arr[0] + "_" + arr[1])            if err != nil {                log.Fatal(err)            }        }    }    return nil}
查看完整描述

1 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

我通过if err != nil { log.Fatal(err) }在printDir功能中取出来修复它。它以 1 个错误代码终止,因为每次运行该程序时,其中一个文件夹已被重命名。


// Rename the folder name to format first_last.

// Then delete all files in each folder that are not jpg extension.

package main


import (

    "path/filepath"

    "log"

    "os"

    "strings"

    "fmt"

)


var PATH = "dir/dir/dir"


func main() {

    err := filepath.Walk(PATH, printDir)

    if err != nil {

        log.Fatal(err)

    }

}


func printDir(path string, info os.FileInfo, err error) error {

    if info.IsDir() {

        if !strings.Contains(info.Name(), "_") && len(strings.Split(info.Name(), " ")) > 1 {

            os.Rename(PATH + info.Name(), PATH + strings.Replace(info.Name(), " ", "_", -1))

        }

    }

    if !info.IsDir() {

        fmt.Println(info.Name())

    }

    return nil

}


查看完整回答
反对 回复 2022-01-04
  • 1 回答
  • 0 关注
  • 248 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号