如何从Ruby中的文件路径中获取文件名?
例如,如果我有一个路径“C:\projects\blah.dll”,我只想要“blah”。
在Ruby中有LastIndexOf方法吗?
如何从Ruby中的文件路径中获取文件名?
例如,如果我有一个路径“C:\projects\blah.dll”,我只想要“blah”。
在Ruby中有LastIndexOf方法吗?
当前回答
你可以获得当前脚本的目录路径:
File.dirname __FILE__
其他回答
尝试File.basename
返回file_name中给出的文件名的最后一个组件,必须使用正斜杠(' ' / ")来组成,而不管本地文件系统上使用的分隔符是什么。如果suffix出现在file_name的末尾,它将被删除。 File.basename("/home/gumby/work/ruby.rb") #=> "ruby.rb" File.basename(“/ home / gumby /工作/ ruby。Rb ", ".rb") #=> "ruby"
在你的情况下:
File.basename("C:\\projects\\blah.dll", ".dll") #=> "blah"
如果你可以访问ENV变量,扫描结合这个小正则表达式(它可以找到倒数第二个单词,一个点,然后是字符串的最后一个单词),将文件的名称放在'filename'中:
filename = ENV['SCRIPT_NAME'].scan(/\w+\.\w+$/)
显然,你可以在任何包含文件名的路径名上使用scan和regex,而__FILE__是明显的选择:
__FILE__.scan(/\w+\.\w+$/)
试试这段代码
用extname
File.basename("a/b/d/test.rb", File.extname("a/b/d/test.rb")) #=> "test"
你可以获得当前脚本的目录路径:
File.dirname __FILE__
注意双引号字符串转义。
'C:\projects\blah.dll'.split('\\').last