Asp classic 使用区分大小写的文件名的文件系统对象

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

我有一个旧的VBScript函数,可以从URL在服务器上保存文件副本。如果文件已经存在,则函数将删除以前的版本并重写新的文件版本。问题是我需要插入区分大小写的文件名。例如,文件名“Test.html”和“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")
调用函数:

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'错误。