3

パスの単一コンポーネントを配列として取得したいと思います。

私はこれらの2つの解決策に行きました:

path = '/usr/share/doc/less/'

parts = path.split(File::Separator)
p parts #  => ["", "usr", "share", "doc", "less"]

require 'pathname'
parts = []
Pathname.new(path).each_filename {|f| parts << f}
p parts #  => ["usr", "share", "doc", "less"]
  1. String.split()

    これは堅牢でポータブルですか?

  2. Pathname.each_filename()

    Ruby では少し冗長に見えます。ただし、これは移植可能でなければなりませんよね?

より良い方法はありますか?標準の Ruby を見逃していませんか?

4

1 に答える 1

7

それはその場です。PathnameRuby の標準ライブラリの一部であり、完全に移植可能なソリューションである必要があります。

これを使用できます:

Pathname.new(path).each_filename.to_a

あるいは:

Pathname(path).each_filename.to_a
于 2013-10-31T17:11:26.157 に答える