我试图在VB中编写这段代码,(我很新) 我想让代码通过一个文件夹/目录,然后选择所有“.txt”文件,就像for循环一样。然后可以使用MsgBox(“txt filename”)列出这些文本文件。这是我到目前为止所得到的:
Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "C:\Users\Desktop\folder"
Set objFolder = objFSO.GetFolder(objStartFolder)
Set colFiles = objFolder.Files
For Each objFile in colFiles
If UCase(objFSO.GetExtensionName(objFile.name)) = ".txt" Then
Wscript.Echo objFile.Name
Next
它似乎没有挑出一个名为“name.txt”的txt文件。任何帮助将不胜感激。
PS: 请忽略和拼写错误以及我糟糕的格式化(我是新的stackoverflow)谢谢! (上面的代码大部分是我在互联网上发现的代码)。
答案 0 :(得分:2)
你应该修改这一行;如果您使用UCase
:
If UCase(objFSO.GetExtensionName(objFile.name)) = ".txt"
到
If UCase(objFSO.GetExtensionName(objFile)) = "TXT"
或者如果您使用LCase
If LCase(objFSO.GetExtensionName(objFile)) = "txt"
你的代码看起来像这样:
Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "C:\Users\Desktop\folder"
Set objFolder = objFSO.GetFolder(objStartFolder)
Set colFiles = objFolder.Files
For Each objFile in colFiles
If LCase(objFSO.GetExtensionName(objFile)) = "txt" Then
Wscript.Echo objFile.Name
End If
Next
<强> GetExtensionName Method 强>