是否有更优雅的子串方式?

Lew*_*909 0 ruby string filenames

这是我的代码

file_name = Dir['path/xml/test/*.txt']
file_name.to_s # => ["path/xml/test/test.txt"]
Run Code Online (Sandbox Code Playgroud)

我想回来:

"test"
Run Code Online (Sandbox Code Playgroud)

我可以使用下面的代码:

file_name = Dir['path/xml/test/*.txt']
file_name.to_s[15,60].gsub(/.txt["]/,"").gsub(/]/,"")
Run Code Online (Sandbox Code Playgroud)

但它不是很优雅.是否有更优雅的方式只返回文件名没有.txt[]

saw*_*awa 5

是.

File.basename(Dir['path/xml/test/*.txt'].first, ".txt")
# => "test"
Run Code Online (Sandbox Code Playgroud)

要为所有文件执行此操作,

Dir['path/xml/test/*.txt'].map{|e| File.basename(e, ".txt")}
Run Code Online (Sandbox Code Playgroud)