我有这个非常复杂的要求。
我们有一堆从 ftp 服务器下载到本地目录中的文件夹中的压缩文件。
然后我们使用下面的代码解压缩文件。
Set objZip = CreateObject("XStandard.Zip")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set fldr = FSO.GetFolder("C:\MUSK\FTP\MainFolder\")
For Each fil In fldr.Files
If LCase( Right( fil.Name, 4 ) ) = ".zip" Then
zipFilePath = fil.Path
objZip.UnPack zipFilePath, ("C:\MUSK\FTP\Current\")
End If
Next
到目前为止,一切都很好。
这就是问题所在。
这些下载的文件具有以下命名约定:
文件名_月-日-年.zip
示例:假设今天是 2012 年 5 月 16 日,文件名如下所示:
myFile_5-16-2012.zip
我们的要求是获取下载的压缩文件并将它们放在正确的文件夹中。
例如,我们有根据月份和年份命名的文件夹。
示例:我们有 JAN2012、FEB2012 等
所以以 myFIle_5-16-2012.zip 为例,myFile_5-16-2012.zip 是针对 MAY2012 的。
我们想使用上面的脚本来获取 myFile_5-16-2012.zip 并将其放在适当的文件夹中。在此示例中,适当的文件夹将是 MAY2012,然后将其解压缩。
基本上, MonthYear 文件夹将替换它:
objZip.UnPack zipFilePath, ("C:\MUSK\FTP\Current\")
换句话说,它将是 MAY2012 或任何 MonthYear 组合,而不是 Current 文件夹。
这可能吗?
我很乐意澄清。对不起,如果我混淆了任何人。