如果不使用管理共享,那多半没什么办法。(除非您真的要做出某些疯狂的举动,如使用 WSHController 对象。但那就要另当别论了。)
而这便引出了我们的不可告人目的:如何遍历远程文件夹中的所有文件并使用 FileSystemObject 打开和读取其中的每个文件?嗯,请看下面这种方法:
这段代码的作用是连接到远程计算机 atl-fs-01,并检索文件夹 C:Logs 中所有文件的集合。棘手之处是构建每个文件的路径,那是因为我们需要使用与以下类似的管理共享路径:
atl-fs-01C$LogsMyFile.log
为构建该路径,我们会各使用一些 WMI 和硬编码:
strFilePath = "" & strComputer & "C$Logs" & _
objFile.FileName & "." & objFile.Extension
我们要做的是:
• 以一对 开头:
• 添加计算机名称:atl-fs-01
• 添加一个 和管理共享路径 C$Logs:atl-fs-01C$Logs
• 添加 WMI FileName 属性(只含文件名部分,不含文件扩展名):atl-fs-01C$LogsMyFile
• 在文件名和文件扩展名之间添加句点(因为句点不是 WMI Extension 属性的一部分):atl-fs-01C$LogsMyFile.
• 添加 WMI 属性 Extension:atl-fs-01C$LogsMyFile.log
这稍显复杂,但它构建了我们需要的 UNC 路径。而且,每次完成循环时它都会替换新的文件名和新的文件扩展名(计算机名称和文件夹路径从不改变)。于是,我们最终能够打开(并读取)远程文件夹中的每个文件。







