Ruby 为什么';t';目录存在?';如果路径以'~';?
我对正在发生的事感到困惑Ruby 为什么';t';目录存在?';如果路径以'~';?,ruby,Ruby,我对正在发生的事感到困惑 dir = "~/Downloads" #=> "~/Downloads" `ls #{dir}` #=> "110912-font-awesome.zip\n" Dir.exist? dir #=> false 为什么会发生这种情况?因为当您使用'ls'时,您运行一个shell命令,~与shell相关(我想这是$HOME变量的快捷方式)。但是Dir.exist?是纯ruby,它对shell一无所知,所以目录不存在 不管怎样,这是有效的 Dir.
dir = "~/Downloads"
#=> "~/Downloads"
`ls #{dir}`
#=> "110912-font-awesome.zip\n"
Dir.exist? dir
#=> false
为什么会发生这种情况?因为当您使用'ls'时,您运行一个shell命令,
~
与shell相关(我想这是$HOME
变量的快捷方式)。但是Dir.exist?
是纯ruby,它对shell一无所知,所以目录不存在
不管怎样,这是有效的
Dir.exist?(ENV['HOME'])
可以展开~
:
dir = File.expand_path('~/Downloads')
#=> /home/stefan/Downloads
Dir.exist?(dir)
#=> true
@Ursus-如果不是太大的性能问题,这可能是所有ruby
文件
和目录
函数都应该为您做的事情。