Add file extension to all files in a folder in R
Problem Description:
As a result from a loop I have a lot of files without a file extension in a folder.
How could I add a file extension (.png) to all files in the folder while keeping the original name, e.g. from NAME1
to NAME1.png
, NAME3
to NAME3.png
, NAME6
to NAME6.png
etc using R?
Solution – 1
With the list.files
function you can retrieve the file names under a given path and with a given pattern. From them you can use paste
to add your file extension and next file.rename
to rename the files. For instance:
oldNames<-list.files(...) #some argument here
newNames<-paste(sep="",oldNames,".png")
for (i in 1:length(oldNames)) file.rename(oldNames[i],newNames[i])
Solution – 2
Install the pathological
package and use replace_extension
.
library(devtools)
install_github("pathological", "richierocks")
library(pathological)
old_filenames <- paste0("NAME", 1:6)
new_filenames <- replace_extension(, "png")
file.rename(old_filenames, new_filenames)
Solution – 3
The solution proposed above could be generalised to allow for changes file extension (in the case below from .xls to .html):
path <- "D:/Projects/"
xls_files <- paste(path, list.files(path, pattern = "*.xls"), sep = "")
html_files <- paste(sep="", gsub(".xls", ".html", xls_files))
file.rename(xls_files, html_files)