1

http://www.ruby-doc.org/core-2.0/File.html

File.basename("/home/gumby/work/Hello.txt")           #=> "Hello.txt"
File.basename("/home/gumby/work/Hello.txt", ".txt")   #=> "Hello"

是否有不区分大小写后缀的 API?我想要以下内容:

File.basename("/home/gumby/work/Hello.TXT", ".txt")   #=> "Hello.TXT"

返回"Hello",而不是"Hello.TXT"or "hello"

4

3 回答 3

2

很不幸的是,不行。然而,File.basename 真正独立于平台的部分在于路径操作,而不是后缀。因此,您可以轻松地用 sub 替换后缀删除:

File.basename(my_path).sub(/\.txt$/i, '')
于 2013-03-19T08:27:54.820 回答
0

如何?

File.basename("ab.TXT","txt".upcase)
#=> "ab."
File.basename("ab.txt","TXT".downcase)
#=> "ab."
于 2013-03-19T08:31:20.077 回答
-1
File.basename(file, File.extname(file))
于 2013-03-19T08:29:25.457 回答