那么我写的代码就改成:
Dim i As Integer, j As Integer, strFilename As String, strPath As String
i = InStr(strurl, "//") + 2
i = InStr(i, strurl, "/") + 1
'上面两句的目的其实是寻找网页的路径(不包含文件名和网站名),对于 www.test.com/404/99/abcd.jpg 来说,目的是寻找 /404/99/ 的第一个 / 在 URL 中的位置。如果直接写 i = InStr(strurl, "/") + 1,返回的值是 http:// 中第一个 / 的位置,所以要先寻找 // 的位置,然后再在它们的后面寻找第一个 /
j = InStrRev(strurl, "/") + 1 'InStrRev 用来返回字符串从右边到左边寻找第一次出现的目的寻找字符
strPath = "D:\" & Mid(strurl, i, j - i) '获得路径
strFilename = "D:\" & strPath & Mid(strurl, j)
If Dir(strPath) = "" Then MkDir strPath
Open strFilename For Binary Access Write As #2