8.2 Manipulação de pastas e arquivos
As funções abaixo auxiliam a checagem de arquivos dentro de pastas, possibilitam a criação de pastas, e a cópia de arquivos dentro do sistema. Dominar essas funções e algumas outras correlatas são importantíssimas, por exemplo, no ramo da bioinformática. No dia a dia, dominá-las também possibilitará que muito tempo seja poupado em atividades maçantes, como copiar ou mover muitos arquivos de uma pasta a outra.
Vamos analisar o uso das funções dir()
, dir.create()
e file.copy()
(vejam a seção Para saber mais para mais informações).
Não esqueçam de checar o ?
de cada função (e.g., ?dir
) para auxiliar no entendimento do funcionamento de cada uma das funções.
# meu caminho
<- "~/Documents/DOC/PROJETO_DOC/R/pkgs/BOT89-introR/tutorial/"
caminho # lista todos os arquivos no caminho que sejam pdfs
<- dir(caminho, pattern = ".pdf")
arqs
# renomeia os arquivos adicionando a data no final do nome
# cria funcao para gerar novos nomes
<- function(x) {
novonome # separa as palavras
<- strsplit(x, ".pdf")[[1]]
xx # cola a data
<- paste(xx, Sys.Date(), sep = "_")
xx1 # junta novamente tudo
<- paste(xx1, ".pdf", sep = "")
xx # retorna o novo nome
return(xx)
}
# agora copia cada arquivo para uma subpasta em caminho
<- paste(caminho, "/pdfs", sep = "")
novapasta dir.create(novapasta)
# salva os arquivos com mesmo nome na nova pasta
# cria uma funcao para isso
<- function(arq, origem, destino) {
salvaarq <- paste(origem, "/", arq, sep = "")
from <- paste(destino, "/", novonome(arq), sep = "")
to file.copy(from, to)
}
# aplica a funcao a todos os arquivos
sapply(arqs, salvaarq, origem = caminho, destino = novapasta)
# pronto os arquivos devem ter sido copiados
dir(novapasta)