双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

ioutil.ReadDir+os.Rename组合带来的问题

weixin_38083228 weixin_38083228 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
files, _ := ioutil.ReadDir(path)->循环打印files没有问题
os.Rename(old,new)->单独执行也正常修改了文件名(os.Rename好像是复制操作)
然后对files执行range批量修改名称时出现了问题.大概只循环了3-4次就退出了.并且没有报错.goland提示Process finished with exit code 0表示正常退出.起初怀疑是复制没完成导致主线程提前退出.最末尾追加了 time.Sleep(time.Hour*1).依然提示Process finished with exit code 0正常退出!!休眠竟然被忽略了,请经历过的人指教下问题出现在哪??
大致代码如下

`files, _ := ioutil.ReadDir(path)`

`for i := 0; i < len(files); i++ {`

` fmt.Println(files[i].Name())`

` split := strings.Split(files[i].Name(), ".")`

` os.Rename(path+"/"+files[i].Name(), "D:/rename/"+strconv.Itoa(i)+"."+split[1])`

`}`

在stackoverflow找到同样的问题:https://stackoverflow.com/questions/56075774/golang-os-renamefromdir-todir-not-working-in-windows# 但是没 解决方案....
...全文
评论 7
收藏 已收藏
分享
返回顶部