从返回的文件列表中删除文件扩展名

时间:2015-10-12 22:25:32

标签: file vbscript

我有以下代码从文件夹中获取txt文件列表,我想从返回的文件名中删除.txt,我该如何实现?

Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "Notes"

Set objFolder = objFSO.GetFolder(objStartFolder)

Set colFiles = objFolder.Files
   For Each objFile in colFiles
   If UCase(objFSO.GetExtensionName(objFile.name)) = "TXT" Then
       document.write objFile.name & "<br>"
   End If
Next

2 个答案:

答案 0 :(得分:2)

这将有效:

...
For Each objFile in colFiles
   If UCase(objFSO.GetExtensionName(objFile.name)) = "TXT" Then
       document.write Left(objFile.name, Len(objFile.name)-4) & "<br>"
   End If
Next

根据文档Left()

  

从字符串的左侧返回指定数量的字符。

您只需要知道要返回多少个字符。由于您已经知道文件名以.txt结尾,因此您可以返回除最后4个字符以外的所有字符。 Len(objFile.name)会给你全长,你可以从那里减去。

答案 1 :(得分:-1)

或者,如果您更喜欢使用处理字符串的函数,那么我会为自己的网站编写一次代码。该函数返回不带扩展名的文件名,前提是带有“。”。当然,在文件名中的任何位置。如果不是,则仅返回输入文件名。

Function RemoveFileExtension(inputFileName)
    IF NOT inStr(inputFileName, ".") > 0 THEN
        ' Period not found
        strReturnvalue = inputFileName
    ELSE
        ' Period found. Locate last 
        intPositionRight = 1
        DO WHILE NOT inStr(right(inputFileName, intPositionRight), ".") > 0
            intPositionRight = intPositionRight + 1
        LOOP
        strReturnvalue = left(inputFileName, len(inputFileName) - intPositionRight)
    END IF

    RemoveFileExtension = strReturnvalue
End Function

然后您可以简单地使用该功能,例如像这样:

For Each objFile in colFiles
    response.write RemoveFileExtension(objFile.name) & "<br>"
Next

编码愉快。 :)