Pergunta

Estou executando o Ruby no Windows, embora não saiba se isso deve fazer a diferença. Tudo o que quero fazer é obter o caminho absoluto do atual diretório de trabalho. Isso é possível do IRB? Aparentemente de um script, é possível usar File.expand_path(__FILE__)

Mas no IRB, tentei o seguinte e recebi um erro de "permissão negada":

File.new(Dir.new(".").path).expand
Foi útil?

Solução

Dir.pwd parece fazer o truque.

http://ruby-doc.org/core/dir.html#method-c-pwd

Outras dicas

File.expand_path File.dirname(__FILE__) retornará o diretório em relação ao arquivo que este comando é chamado.

Mas Dir.pwd Retorna o diretório de trabalho (resultados idênticos à execução pwd no seu terminal)

Quanto ao caminho em relação ao script de execução atual, já que Ruby 2.0 você também pode usar

__dir__

Portanto, isso é basicamente o mesmo que

File.dirname(__FILE__)

Isso fornecerá o diretório de trabalho do arquivo atual.

File.dirname(__FILE__)

Exemplo:

current_file: "/users/nemrow/sitm/folder1/folder2/amazon.rb"

Resultado: "/Usuários/Nemrow/sitm/pasta1/pasta2"

Se você deseja obter o caminho completo do diretório do arquivo RB atual:

File.expand_path('../', __FILE__)

Com isso, você pode obter um caminho absoluto de qualquer arquivo localizado em qualquer diretório.

File.join(Dir.pwd,'some-dir','some-file-name')

Isso retornará

=> "/User/abc/xyz/some-dir/some-file-name"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top