この非常に複雑な要件があります。
ftpサーバーからローカルディレクトリのフォルダにダウンロードされたzipファイルがたくさんあります。
次に、以下のコードを使用してファイルを解凍します。
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
ここまでは順調ですね。
ここで問題が発生します。
これらのダウンロードされたファイルには、次の命名規則があります。
filename_month-day-year.zip
例:今日が2012年5月16日であるとすると、ファイル名は次のようになります。
myFile_5-16-2012.zip
ダウンロードしたzipファイルを取得して、正しいフォルダーに配置する必要があります。
たとえば、月と年に応じて名前が付けられたフォルダがあります。
例:JAN2012、FEB2012などがあります
したがって、myFIle_5-16-2012.zipを例にとると、myFile_5-16-2012.zipはMAY2012用です。
上記のスクリプトを使用してmyFile_5-16-2012.zipを取得し、適切なフォルダーに配置します。この例では、適切なフォルダは2012年5月で、解凍します。
基本的に、MonthYearフォルダーはこれを置き換えます。
objZip.UnPack zipFilePath、( "C:\ MUSK \ FTP \ Current \")
つまり、Currentフォルダーの代わりに、2012年5月またはMonthYearの任意の組み合わせになります。
これは可能ですか?
明確にさせていただきたいと思います。誰かを混乱させたらごめんなさい。