我在我使用的环境中有一个模块,当我从文件对话框中选择一个文件时,将路径存储在一个变量中(比如var path
)。
我需要获取路径中所有文件的列表并将其存储到数组中。
所以我试过的是:
list = Dir[path + "*"]
事实是路径是这样的事情:
D:\Google Drive\Samples\Black Octopus Sound\Drums - Kicks\
当我读到它时,数组是空的。这是因为斜杠应该是/
而不是\
。所以我这样做了:
path = path.gsub('\\','\/')
但结果是:
D:\/Google Drive\/Samples\/Black Octopus Sound\/Drums - Kicks\/
看起来像存储在变量中的路径是:
D:\\Google Drive\\Samples\\Black Octopus Sound\\Drums - Kicks\\
是正常的吗?因为如果我只是打印路径,它看起来是正确的:
D:\Google Drive\Samples\Black Octopus Sound\Drums - Kicks\
这是Ruby中逃避路径的预期行为吗?我错了吗?我怎样才能最好地处理这种情况?
为什么我不能写:
path = "D:\Google Drive\Samples\Black Octopus Sound\Drums - Kicks\"
但仅限:
path = "D:\Google Drive\Samples\Black Octopus Sound\Drums - Kicks\ " // notice the last empty space in the end
它说unterminated string meets end of file
答案 0 :(得分:1)
\ means =>> Escapes the next metacharacter.
意味着你不能在windows上使用反斜杠作为glob的一部分,例如。
Dir["D:\foo*"] will not work, use Dir["D:/foo*"] instead.`
答案 1 :(得分:0)