使用具有区分大小写文件名的文件系统对象

时间:2013-10-07 15:39:52

标签: asp-classic vbscript filesystemobject

我有一个旧的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")

谢谢!

1 个答案:

答案 0 :(得分:0)

我会使用直接比较代替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。