Hier ist mein CodeGibt es eine elegantere Art der Teilzeichenfolge?
file_name = Dir['path/xml/test/*.txt']
file_name.to_s # => ["path/xml/test/test.txt"]
ich zurückkehren wollen:
"test"
ich es mit dem Code unten tun können:
file_name = Dir['path/xml/test/*.txt']
file_name.to_s[15,60].gsub(/.txt["]/,"").gsub(/]/,"")
Aber es ist nicht sehr elegant. Gibt es eine elegantere Möglichkeit, den Dateinamen einfach ohne .txt
und []
zurückzugeben?
Seit 'Dir []' Sie ein Array ist zu geben, Sie sollten es nicht auf eine Zeichenfolge umwandeln. Rufen Sie stattdessen '.first' oder vielleicht' .pop' darauf auf (oder viele andere Möglichkeiten, auf das Array-Element zuzugreifen, um das erste Element zu erhalten, dann können Sie [diese Vorschläge mit 'File.basename () '] (http://stackoverflow.com/questions/374326/how-to-get-filename-without-extension-from-file-path-in-ruby), um den gewünschten Teil des Dateinamens zu erhalten. –
Erwarten Sie, dass Ihr 'Dir []' mehrere Dateien zurückgibt? Wenn ja, willst du die Namen von allen bekommen? –
Ja Ich möchte mehrere Namen zurückgeben, damit ich den Dateinamen mit einem Element in einem XML-Code vergleichen kann. – Lewis909