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
caminho <- "~/Documents/DOC/PROJETO_DOC/R/pkgs/BOT89-introR/tutorial/"
# lista todos os arquivos no caminho que sejam pdfs
arqs <- dir(caminho, pattern = ".pdf")

# renomeia os arquivos adicionando a data no final do nome
# cria funcao para gerar novos nomes
novonome <- function(x) {
  # separa as palavras
  xx <- strsplit(x, ".pdf")[[1]]
  # cola a data
  xx1 <- paste(xx, Sys.Date(), sep = "_")
  # junta novamente tudo
  xx <- paste(xx1, ".pdf", sep = "")
  # retorna o novo nome
  return(xx)
}

# agora copia cada arquivo para uma subpasta em caminho
novapasta <- paste(caminho, "/pdfs", sep = "")
dir.create(novapasta)

# salva os arquivos com mesmo nome na nova pasta
# cria uma funcao para isso
salvaarq <- function(arq, origem, destino) {
  from <- paste(origem, "/", arq, sep = "")
  to <- paste(destino, "/", novonome(arq), sep = "")
  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)