Asp classic 使用区分大小写的文件名的文件系统对象
我有一个旧的VBScript函数,可以从URL在服务器上保存文件副本。如果文件已经存在,则函数将删除以前的版本并重写新的文件版本。问题是我需要插入区分大小写的文件名。例如,文件名“Test.html”和“Test.html”应该保存为不同的副本,我的函数只是替换它们。有什么建议吗 职能:Asp classic 使用区分大小写的文件名的文件系统对象,asp-classic,vbscript,filesystemobject,Asp Classic,Vbscript,Filesystemobject,我有一个旧的VBScript函数,可以从URL在服务器上保存文件副本。如果文件已经存在,则函数将删除以前的版本并重写新的文件版本。问题是我需要插入区分大小写的文件名。例如,文件名“Test.html”和“Test.html”应该保存为不同的副本,我的函数只是替换它们。有什么建议吗 职能: Public Function SaveToChache(Url, SaveToFolder, FileName) Dim ChacheFolder: ChacheFolder = SaveToFold
Public Function SaveToChache(Url, SaveToFolder, FileName)
Dim ChacheFolder: ChacheFolder = SaveToFolder 'Folder where will the cache files be stored (include trailing slash)
Dim FilePath: FilePath = Server.MapPath(ChacheFolder & FileName)
Dim objXMLHTTP: Set objXMLHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
objXMLHTTP.open "GET", Url, false
objXMLHTTP.send()
If objXMLHTTP.Status = 200 Then
Dim objADOStream: Set objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1 'adTypeBinary
objADOStream.Write objXMLHTTP.ResponseBody
objADOStream.Position = 0 'Set the stream position to the start
Dim objFSO: Set objFSO = Createobject("Scripting.FileSystemObject")
If objFSO.FileExists(FilePath) Then objFSO.DeleteFile FilePath
Set objFSO = Nothing
objADOStream.SaveToFile FilePath
objADOStream.Close
Set objADOStream = Nothing
SaveToChache = objXMLHTTP.getResponseHeader("Content-Type")
Else
SaveToChache = ""
End if
Set objXMLHTTP = Nothing
End Function
savefile = SaveToChache("http://www.example.com", "/cache/", "Test.html")
调用函数:
Public Function SaveToChache(Url, SaveToFolder, FileName)
Dim ChacheFolder: ChacheFolder = SaveToFolder 'Folder where will the cache files be stored (include trailing slash)
Dim FilePath: FilePath = Server.MapPath(ChacheFolder & FileName)
Dim objXMLHTTP: Set objXMLHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
objXMLHTTP.open "GET", Url, false
objXMLHTTP.send()
If objXMLHTTP.Status = 200 Then
Dim objADOStream: Set objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1 'adTypeBinary
objADOStream.Write objXMLHTTP.ResponseBody
objADOStream.Position = 0 'Set the stream position to the start
Dim objFSO: Set objFSO = Createobject("Scripting.FileSystemObject")
If objFSO.FileExists(FilePath) Then objFSO.DeleteFile FilePath
Set objFSO = Nothing
objADOStream.SaveToFile FilePath
objADOStream.Close
Set objADOStream = Nothing
SaveToChache = objXMLHTTP.getResponseHeader("Content-Type")
Else
SaveToChache = ""
End if
Set objXMLHTTP = Nothing
End Function
savefile = SaveToChache("http://www.example.com", "/cache/", "Test.html")
谢谢 我将使用直接比较而不是
objFSO.FileExists
例如:
Dim objFSO: Set objFSO = Createobject("Scripting.FileSystemObject")
FilePath = "C:\Test\test.txt"
'Get path to file
strParentPath = objFSO.GetFile(FilePath).ParentFolder
'Get each file in the folder
Set objCheck = objFSO.GetFolder(strParentPath).Files
For Each x In objCheck
If x = FilePath Then objFSO.DeleteFile(FilePath)
Next
基本上,如果情况相同,x将只等于FilePath。请参阅的答案,以了解为什么这在原则上是可行的,但在实践中通常不可行(甚至可能不可取)。因此,必须更改服务器设置?在内核配置中,是的。我宁愿在文件名前加上一个随机数,这样做比较麻烦。谢谢。不幸的是,它对我不起作用!我收到ADODB。流错误'800a0bbc'错误。