我有以下代码从文件夹中获取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
答案 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
编码愉快。 :)