解析 HTTP 目录列表
再会!我正在使用 Delphi XE 和 Indy TIdHTTP。使用 Get 方法我获取远程目录列表,我需要解析它 = 获取文件列表及其大小和时间戳并区分文件和子目录。请问,有什么好的惯例吗?先感谢您! Vojtech
这是示例:
<head>
<title>127.0.0.1 - /</title>
</head>
<body>
<H1>127.0.0.1 - /</H1><hr>
<pre>
Mittwoch, 30. März 2011 12:01 <dir> <A HREF="/SubDir/">SubDir</A><br />
Mittwoch, 9. Februar 2005 17:14 113 <A HREF="/file.txt">file.txt</A><br />
</pre>
<hr>
</body>
Good day! I'm using Delphi XE and Indy TIdHTTP. Using Get method I get remote directory listing and I need to parse it = get list of files with their sizes and timestamps and distinguish files and subdirectories. Please, is there a good routine to do that? Thank you in advance! Vojtech
Here is the sample:
<head>
<title>127.0.0.1 - /</title>
</head>
<body>
<H1>127.0.0.1 - /</H1><hr>
<pre>
Mittwoch, 30. März 2011 12:01 <dir> <A HREF="/SubDir/">SubDir</A><br />
Mittwoch, 9. Februar 2005 17:14 113 <A HREF="/file.txt">file.txt</A><br />
</pre>
<hr>
</body>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
给定代码示例,我猜解析它的最快方法如下:
之间的所有内容放入
TStringList
中。每一行都是一个文件或文件夹,格式非常简单。Given the code sample, I guess the fastest way to parse it would be like this:
<pre>...</pre>
block containing all the listing lines. Should be easy.<pre>
and</pre>
into aTStringList
. Each line is a file or folder, and the format is very simple.这应该会给你一个使用 DOM 的良好开始和想法:
输出:
编辑:
我已将
StripMultipleChar
实现更改为更加简化。但我相信前一个版本对速度进行了更多优化。考虑到线路长度很短,性能上不会有太大差异。This should give you a good start and idea using DOM:
Output:
EDIT:
I have changed
StripMultipleChar
implementation to be more simplified. yet I belive the former version was more optimized to speed. considering the fact that the Lines are very short in length, there will be no much differences in performance.