VBA winhttp等效于本地文件

时间:2015-08-13 20:01:39

标签: vba adodb winhttp

所以我目前有一个子软件复制存储在我们内部网上的文件并将它们保存到我们的共享驱动器中。现在,我想做同样的事情,但是在本地存储在用户计算机上的文件,而不是在Intranet上。我怎么能这样做?

Sub intranetPullFile(link, extent, strFile)    
 Set WinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
 If WinHttp Is Nothing Then Set WinHttp = CreateObject("WinHttp.WinHttpRequest")
 WinHttp.Open "GET", link , False
 WinHttp.Send
 arrResponse = WinHttp.ResponseBody
 Set WinHttp = Nothing
 Set oADO = CreateObject("ADODB.Stream")
 oADO.Type = 1
 oADO.Open
 oADO.Write arrResponse
 oADO.SaveToFile strFile, 2
 oADO.Close
end sub

我尝试使用它,因为它们的C:....地址是文件的链接,但是我收到一个错误:URL没有使用公认的协议。

所以,我标记了答案,因为它得到了我需要的东西,谢谢! ---仍然很好奇是否有本地文件等同于'关于winhttp如何运作,但我现在可以继续前进,所以我很好。再次感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用CopyFile()复制并指定新名称。如果您将True作为第3个参数传递,它也可以覆盖现有文件:

With CreateObject("Scripting.FileSystemObject")
    .CopyFile strSourceFile, strDestFile, True  
End With

答案 1 :(得分:0)

VBA可以在没有FSO的情况下在一行中完成:

FileCopy fullSourcePathandName, fullDestinationPathandName