Rubysistsforjapan-badge

A linguagem Ruby permite realizar várias operações com pastas e arquivos no sistema operacional hospedeiro. Através de scripts, é possível criar, renomear ou apagar pastas, arquivos ou ainda obter informações sobre eles. Vamos ver melhor como ela funciona.

Manipulando arquivos
Para manipular arquivos, não é preciso instalar gems, basta usar os métodos da classe File. Vamos conhecer alguns deles.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# para criar um novo arquivo, usamos 'new'
irb(main):001:0> File.new("arquivo.txt", "w")
=> #
# para ver a data de criação do arquivo, usamos 'ctime'
irb(main):002:0> File.ctime("arquivo.txt")
=> 2011-03-07 16:40:17 -0300
# para ver a data de última modificação do arquivo, usamos 'mtime'
irb(main):003:0> File.mtime("arquivo.txt")
=> 2011-03-07 16:40:17 -0300
# para ver a data do úlitmo acesso arquivo, usamos 'atime'
irb(main):004:0> File.atime("arquivo.txt")
=> 2011-03-07 16:40:17 -0300
# para alterar o nome do arquivo, usamos 'rename'
irb(main):005:0> File.rename("arquivo.txt", "outro_arquivo.txt")
=> 0
# para excluir o arquivo, usamos 'delete'
irb(main):006:0> File.delete("arquivo.txt")
=> 1

A classe File tem outros métodos que retornam diferentes informações sobre os arquivos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# criando um novo arquivo para testar os métodos
irb(main):001:0> File.new("arquivo.txt", "w")
=> #
# verificando se arquivo existe no diretório atual
irb(main):002:0> File.exist?("arquivo.txt")
=> true
# verifica se o arquivo existe e está nomeado corretamente
irb(main):003:0> File.file?("arquivo.txt")
=> true
# verifica se é uma pasta ou link para pasta
irb(main):004:0> File.directory?("arquivo.txt")
=> false
# verifica se o arquivo pode ser lido
irb(main):005:0> File.readable?("arquivo.txt")
=> true
#verifica se o arquivo pode ser escrito
irb(main):006:0> File.writable?("arquivo.txt")
=> true
# verifica se o arquivo é um executável
irb(main):007:0> File.executable?("arquivo.txt")
=> false
# verifica se o tamanho do arquivo é zero ou desconhecido
irb(main):009:0> File.zero?("arquivo.txt")
=> false
# mostra o tamanho do arquivo
irb(main):010:0> File.size("arquivo.txt")
=> 4650
# mostra o tipo do arquivo (arquivo, link, socket, etc)
irb(main):011:0> File.ftype("arquivo.txt")
=> "file"

Acesse a documentação da classe File para conhecer mais métodos interessantes.

Manipulando Pastas

Para trabalhar com diretórios, a linguagem Ruby disponibiliza a classe Dir, que também traz uma série de métodos para gerenciar pastas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# para saber qual o diretório atual, usamos o método 'pwd'
irb(main):001:0> Dir.pwd
=> "C:/Ruby"
# para criar uma nova pasta, usamos o método 'mkdir'
irb(main):002:0> Dir.mkdir("novaPasta")
=> 0
# para acessar outra pasta, usamos o método 'chdir'
irb(main):003:0> Dir.chdir("novaPasta")
=> 0
# para listar o conteúdo de uma pasta, usamos o 'foreach'
irb(main):004:0> Dir.foreach(Dir.pwd) { |nome| puts nome }
.
..
arquivo.txt
item.txt
teste.txt
=> nil

Para excluir uma pasta do sistema, podemos usar delete ou rmdir.

1
2
3
4
5
# a pasta deve estar vazia
irb(main):002:0> Dir.rmdir("novaPasta")
=> 0
irb(main):003:0> Dir.delete("novaPasta")
=> 0

Conheça outros métodos da classe Dir no Ruby-Doc.

Em tutoriais anteriores, já mostramos como ler arquivos texto e como escrever neles também. Caso queira aprender mais sobre manipulação de arquivos e pastas através de código Ruby, veja também este artigo do tutsplus, que dá outros exemplos interessantes.

Artigos relacionados

Tags:
 

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>