比如说我想列出http://haoqicat.com/course_poster/
目录下都有哪些文件。
找了半天也没找到合适的方法,大家有什么好方法。
@luckyyang, 使用 course_poster 目录的本地 path,通过 Find.find(path).to_a,你可以获取到所有文件对象的数组
#3 楼 @xiaogui 我看有个说先 mount 然后在当作本地文件来读,不过我不想这么做。
使用 open-uri 中的 open 直接打开这个 url 可以得到一堆信息,不过不知道如何去解析,也不值得自己写函数去解析:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>Index of /course_poster/default_poster</title>
</head>
<body>
<h1>Index of /course_poster/default_poster</h1>
<table><tr><th><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr><tr><th colspan="5"><hr></th></tr>
<tr><td valign="top"><img src="/icons/back.gif" alt="[DIR]"></td><td><a href="/course_poster/">Parent Directory</a></td><td> </td><td align="right"> - </td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="0.jpg">0.jpg</a></td><td align="right">24-Nov-2013 01:47 </td><td align="right">5.7M</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="1.jpg">1.jpg</a></td><td align="right">24-Nov-2013 01:44 </td><td align="right">2.1M</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="2.jpg">2.jpg</a></td><td align="right">24-Nov-2013 01:44 </td><td align="right">1.4M</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="3.jpg">3.jpg</a></td><td align="right">24-Nov-2013 01:45 </td><td align="right">1.0M</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="4.jpg">4.jpg</a></td><td align="right">24-Nov-2013 01:43 </td><td align="right">2.1M</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="5.jpg">5.jpg</a></td><td align="right">24-Nov-2013 01:45 </td><td align="right">1.4M</td><td> </td></tr>
<tr><td valign="top"><img src="/icons/image2.gif" alt="[IMG]"></td><td><a href="6.jpg">6.jpg</a></td><td align="right">24-Nov-2013 01:42 </td><td align="right">1.6M</td><td> </td></tr>
<tr><th colspan="5"><hr></th></tr>
</table>
</body></html>
如果实在没别的方法,就把这些文件放到我的public/
下吧,这样使用Dir[http://haoqicat.com/course_poster/]
就可以直接得到我想要的列表数组了
感觉你在四楼说的那种形式就像是我说的“除非是目录设置可列出文件列表,又没有默认文档,你才能看到的吧。”情况。就是你直接使用浏览器打开 url,那个页面显示的是一个当前文件夹的文件列表。
#4 楼 @luckyyang 照你这个页面的话可以这么做
# encoding: utf-8
require "open-uri"
require "nokogiri"
doc = Nokogiri::HTML.parse open("http://localhost")
p doc.css('td a').map { |link| link['href'] }