使用R更改目录中的文件名

使用R更改目录中的文件名,r,file-rename,R,File Rename,我正在尝试重命名目录中的png文件。现在它们看起来是这样的:“E:/S3\u Backup\u Anna/S3\u L1/Subset\u S3\u L1/Subset\u pngs/Subset\u S3A\u OL\u 1\u EFR\u\u\u 20190403T145249\u 20190403T145549\u 20190404T211934\u 0179\u 043\u 139\u 2340\u MAR\u NT\u 002.SEN3.png” 我想将它们重命名为yyyymmdd格式

我正在尝试重命名目录中的png文件。现在它们看起来是这样的:“E:/S3\u Backup\u Anna/S3\u L1/Subset\u S3\u L1/Subset\u pngs/Subset\u S3A\u OL\u 1\u EFR\u\u\u 20190403T145249\u 20190403T145549\u 20190404T211934\u 0179\u 043\u 139\u 2340\u MAR\u NT\u 002.SEN3.png”

我想将它们重命名为yyyymmdd格式的日期,因此上面的文件将仅为“20190404”

我已经找到了获取yyyymmdd日期的方法:

myfiles <- list.files(path = "E:/S3_Backup_Anna/S3_L1/Subset_S3_L1/subset_pngs", pattern = "*.png", full.names = T)

# get date of every file 
startpos <- 73 
yyyymmdd = substr(myfiles, start = startpos, stop = startpos + 7)

myfiles
file.rename
在这种情况下应该适合您。但是,我会小心使用这些可以与文件系统接口的函数。在运行任何东西之前,请确保您知道自己正在运行什么,否则您可能会最终执行一些您不打算执行的操作

如果您尝试了
file.rename
,但文件确实被重命名,但没有扩展名,请确保在新名称中包含全名和扩展名。请参见下面的示例

如果我在C:/Path/To/My/文件中有3.png文件,且命名约定为image_yyyymmddTHHMMSS.png,则以下操作将起作用:

path <- "C:/Path/To/My/Files"
files <- list.files(
  path = path,
  pattern = '*.png',
  full.names = TRUE
)


startpos <- 37
newName <- paste(path, "/", substr(files, startpos, startpos + 14), ".png", sep = "")

file.rename(from = files, to = newName)

路径
文件如何。重命名
无效?它是否抛出了一个错误,或者只是没有重命名文件?另外,如果多个文件具有相同的日期,该怎么办。将时间戳部分也包含在新名称中可能是一个好主意。它重命名了文件,但它们不再是PNG,文件类型只显示“file”。。包括时间戳是一个好主意,因为同一日期有多个。确定-确保粘贴所有相关的文件名信息,包括路径和文件扩展名。