VBA 使用 WQL 查找目录中所有隐藏文件夹并将其存储在 xml 文件中的代码

VBA code to find all hidden folders in directory with WQL and store it in xml file

我现在设法获取了所有隐藏文件夹,唯一的问题是将有关它的所有信息存储到 xml 文件中。 谁能帮我解决这个问题?

Dim xdoc
Function CreateFolders(objFile)
  Dim elem
  Dim attr
  set elem = xdoc.createElement("Folders")
  set attr = xdoc.createAttribute("Description")
  attr.value = objFile.Description
  elem.setAttributeNode attr
  set CreateFolders = elem
End Function

Dim FilePath

Dim objFile
Dim root
Dim elem, elem1


Set xdoc = CreateObject("MSXML2.DOMDocument.6.0")
xdoc.appendChild xdoc.createProcessingInstruction        ("xml", "version=""1.0""     encoding=""utf-8""")
FilePath = "C:\Users\User\Downloads\M.xml"

set root = xdoc.createElement("Folders")
xdoc.appendChild root


strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
    ("Select * from Win32_Directory Hidden = True")
 For Each objFile in colFiles
   Wscript.Echo objFile.Name
Next

提前感谢您抽出时间。

这是我找到的解决方案。可能会在将来帮助某人

Dim xdoc
Function CreateFolders(objFile)
  Dim elem
  Dim attr
  set elem = xdoc.createElement("Folder")
  set attr = xdoc.createAttribute("Description")
  attr.value = objFile.Description
  elem.setAttributeNode attr
  set CreateFolders = elem
End Function

Dim FilePath
Dim objFile
Dim root
Dim elem, elem1


Set xdoc = CreateObject("MSXML2.DOMDocument.6.0")
xdoc.appendChild xdoc.createProcessingInstruction("xml", "version=""1.0""       encoding=""utf-8""")
FilePath = "C:\Users\User\Downloads\My.xml"

set root = xdoc.createElement("Folders")
xdoc.appendChild root

Wscript.Echo "Stage 1 Done"

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
    ("Select * from Win32_Directory Where Hidden = True")
Wscript.Echo "Stage 2 Done"

For Each objFile in colFiles
set elem = CreateFolders(objFile)
root.appendChild elem


Next
Wscript.Echo "Stage 3 Done"
xdoc.Save FilePath