You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言批量重命名Windows文件夹.dts文件失败求助

解决Windows下R脚本重命名.dts文件无效的问题

我明白你的困扰——脚本显示执行成功,但文件夹里的文件名压根没变化,这确实让人头疼。咱们来一步步解决这个问题:

问题根源

你的脚本里list.files()默认只返回纯文件名(比如"20172303.dts"),而不是文件的完整路径。当你调用file.rename()时,R会在当前工作目录(可以用getwd()命令查看)里找这些文件并尝试重命名,而不是你指定的C:/my file path/文件夹。这就导致你看似执行成功,其实根本没操作到目标文件。

修正后的完整脚本

把下面的代码替换你原来的脚本,就能正确修改目标文件夹里的文件名了:

# 定义文件路径(注意路径里的空格没问题,R支持正斜杠)
filepath <- "C:/my file path/"

# 获取带完整绝对路径的.dts文件列表,关键是加上full.names=TRUE
myfile_dts_2019 <- list.files(path = filepath, pattern = "\\.dts$", full.names = TRUE)
# 这里pattern用\\.dts$是为了精准匹配后缀为.dts的文件,避免匹配到比如xxx.dts.txt这类文件

# 打印完整路径的文件列表,确认是否正确获取到目标文件
print(myfile_dts_2019)

# 提取文件名部分,用于替换年份
file_names <- basename(myfile_dts_2019)

# 将文件名中的2017替换为2019
new_file_names <- stringr::str_replace(file_names, "2017", "2019")

# 组合新的完整文件路径,用file.path避免手动拼接路径的错误
newfiles <- file.path(filepath, new_file_names)

# 执行重命名,并保存结果
rename_result <- file.rename(myfile_dts_2019, newfiles)

# 检查重命名结果
if (all(rename_result)) {
  cat("太棒了!所有.dts文件都成功重命名为2019开头啦~\n")
} else {
  cat("有部分文件重命名失败,失败的文件路径如下:\n")
  print(myfile_dts_2019[!rename_result])
}

额外注意事项

如果修改后还是没生效,你可以排查这几个点:

  • 文件被占用:先关闭所有打开这些.dts文件的软件(比如你提到的要打开文件的其他程序),Windows会锁定正在使用的文件,导致无法重命名。
  • 权限问题:如果目标文件夹在C盘系统目录下,右键点击R/RStudio,选择「以管理员身份运行」,再执行脚本试试。
  • 刷新文件夹:有时候Windows资源管理器会缓存旧文件名,按F5刷新一下就能看到新名字了。

内容的提问来源于stack exchange,提问作者DanG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 06:31:42