2

Rails アプリケーションがあり、任意のフォルダー内のファイルを表示する必要があります。たとえば、c:\rails_app にアプリケーションがあり、コントローラーに次のコードを記述します。

@files = Dir.glob("Z:/*")

Railsコンソールのファイルディレクトリ全体が完全に機能していません。質問があります: Rails 以外のディレクトリからファイルを表示するにはどうすればよいですか? ありがとう
--- いくつかの回答の後
問題は Dir クラスを使用していません。Railsが自分のルートディレクトリしか見えず、Railsコントローラでディレクトリを他のディスクやフォルダに変更できない問題。

4

4 に答える 4

3

またはを使用してDir#entries、任意のフォルダのリストを取得できます。Dir#globDir#[]

Dir.entries('/Users/ccashwell/.vim/')
=> [".",
 "..",
 ".git",
 ".gitignore",
 ".gitmodules",
 ".netrwhist",
 "ackrc",
 "after",
 "autoload",
 "bundle",
 "init",
 "LICENSE",
 "README.md",
 "snippets",
 "syntax",
 "vimrc"]

Dir.glob('/Users/ccashwell/.vim/*')
=> ["/Users/ccashwell/.vim/ackrc",
 "/Users/ccashwell/.vim/after",
 "/Users/ccashwell/.vim/autoload",
 "/Users/ccashwell/.vim/bundle",
 "/Users/ccashwell/.vim/init",
 "/Users/ccashwell/.vim/LICENSE",
 "/Users/ccashwell/.vim/README.md",
 "/Users/ccashwell/.vim/snippets",
 "/Users/ccashwell/.vim/syntax",
 "/Users/ccashwell/.vim/vimrc"]

Dir['/Users/ccashwell/.vim/*']
=> ["/Users/ccashwell/.vim/ackrc",
 "/Users/ccashwell/.vim/after",
 "/Users/ccashwell/.vim/autoload",
 "/Users/ccashwell/.vim/bundle",
 "/Users/ccashwell/.vim/init",
 "/Users/ccashwell/.vim/LICENSE",
 "/Users/ccashwell/.vim/README.md",
 "/Users/ccashwell/.vim/snippets",
 "/Users/ccashwell/.vim/syntax",
 "/Users/ccashwell/.vim/vimrc"]
于 2013-11-06T15:29:55.053 に答える
0

あなたに起こりうることは、\ 次の文字をエスケープすることだと思います。試す:

@files = Dir.glob("Z:\\*")

また:

@files = Dir.glob("Z:/*")
于 2013-11-06T15:29:17.980 に答える