项目外部的路径,Ruby Dir
我尝试使用以下代码返回目录的文件列表:项目外部的路径,Ruby Dir,ruby,Ruby,我尝试使用以下代码返回目录的文件列表: Dir[directory] 我遇到的问题是,它似乎总是将url作为相对于项目位置的url。例如,将“*”传递到Dir将返回一个包含my Gemfile等的数组。。我希望能够获取目录的文件列表,例如/Users/jason/Pictures,但是当我传入/Users/jason/Pictures/*时,返回的是一个空数组 任何指点都将不胜感激。 谢谢。您需要使用entries方法 Dir.entries('/') => [".", "..", ".
Dir[directory]
我遇到的问题是,它似乎总是将url作为相对于项目位置的url。例如,将“*”传递到Dir将返回一个包含my Gemfile等的数组。。我希望能够获取目录的文件列表,例如/Users/jason/Pictures
,但是当我传入/Users/jason/Pictures/*
时,返回的是一个空数组
任何指点都将不胜感激。
谢谢。您需要使用entries方法
Dir.entries('/')
=> [".", "..", ".apdisk", ".com.apple.backupd.mvlist.plist", ".dbfseventsd", ".DocumentRevisions-V100", ".DS_Store", ".file", ".fseventsd", ".hotfiles.btree", ".MobileBackups",".OSInstallMessages", ".PKInstallSandboxManager", ".Spotlight-V100", ".SymAVx86QSFile", ".Trashes", ".vol", "Applications", "bin", "cores", "dev", "etc", "home", "Library", "net", "Network", "opt", "private", "sbin", "System", "tmp", "Users", "usr", "var", "Volumes", "~"]
这是官方文件试试看:
Dir['/Users/jason/Pictures/*']
如果该路径中嵌入了文件或目录,您将从中获取一个数组。如果没有,并且您确定目录中有文件,那么就有问题了,但很可能是在您提供的glob字符串中。通过移动到它并使用pwd
查看操作系统认为它是什么来确认它是正确的路径Dir[]
不返回错误如果全局字符串无效,它只返回一个空数组
您可以尝试使用File.exist?('glob string without*')
并在尝试迭代之前查看该路径是否存在
在我的计算机上,在我的主目录的IRB中运行此命令:
Dir['./vim/bundle/*']
返回:
[
[ 0] "./vim/bundle/closetag.vim",
[ 1] "./vim/bundle/ctrlp.vim",
...
[31] "./vim/bundle/vim-vividchalk",
[32] "./vim/bundle/Vundle.vim"
]
我也可以使用绝对路径:
Dir['/Users/ttm/vim/bundle/*']
并获得:
[
[ 0] "/Users/ttm/vim/bundle/closetag.vim",
[ 1] "/Users/ttm/vim/bundle/ctrlp.vim",
...
[31] "/Users/ttm/vim/bundle/vim-vividchalk",
[32] "/Users/ttm/vim/bundle/Vundle.vim"
]
请注意,如果使用相对全局字符串,则会得到相对路径名,而绝对全局字符串会得到绝对路径名。
Dir['/Users//Pictures/*']
在我的机器上工作。这可能是一个权限问题吗?我想可能是我忽略了在我的机器上创建测试目录的事实,但是SSH已经进入另一个开发框中。。也许该睡觉了。。