gpt4 book ai didi

vbscript - VBS FileSystem Object - FileExists,不仅仅是文件名的比较

转载 作者:行者123 更新时间:2023-12-04 21:15:56 27 4
gpt4 key购买 nike

我有一个脚本可以定期从 RSS 提要下载信息,其中一个是图像。现在,我正在使用 FileSystemObject 和 FileExists 比较在下载图像之前检查图像是否存在,这样我就不会一遍又一遍地下载相同的文件。图像会定期更新,但保持相同的名称,但在运行一些测试后,看起来 FileExists 只是比较文件名,而不是实际文件。由于在线文件和本地文件同名,即使它们是不同的图像,它也不会下载图像。

我的问题是有没有另一种方法来比较文件,看看它们是否有不同的名称?

这是我正在使用的功能:

function saveImageReturnPath(oPath)
dim oFSO
dim oHTTP
dim oStream
dim fol
dim fil

set oFSO = createObject("Scripting.FileSystemObject")
fil = oFSO.getBaseName(oPath) & ".jpg"

if not oFSO.fileExists(localPath & fil) then
set oHTTP = createObject("MSXML2.XMLHTTP")
oHTTP.open "GET", oPath, false
oHTTP.send
set oStream = createObject("ADODB.Stream")
oStream.type = 1
oStream.open
oStream.write oHTTP.responseBody
oStream.saveToFile oFSO.buildPath(localPath, fil), 2
oStream.close
end if

saveImageReturnPath = localPath & fil
end function

最佳答案

您可以查看 MD5 hash的文件。

this question有关如何实现这一点的详细信息。

Set fso = CreateObject("Scripting.FileSystemObject")
Dim oMD5: Set oMD5 = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")

Function GetMd5(filename)
Dim oXml, oElement

oMD5.ComputeHash_2(GetBinaryFile(filename))

Set oXml = CreateObject("MSXML2.DOMDocument")
Set oElement = oXml.CreateElement("tmp")
oElement.DataType = "bin.hex"
oElement.NodeTypedValue = oMD5.Hash
GetMd5 = oElement.Text
End Function

免责声明 :我没有测试这段代码,它是来自链接答案的代码。我发布它以防答案被删除或链接中断。

关于vbscript - VBS FileSystem Object - FileExists,不仅仅是文件名的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44636636/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com