フォルダー内の同じ名前で拡張子が異なるすべてのファイルを圧縮する関数を作成する際に助けが必要です.Ionic.Zip dllを使用してこれを実現しています..Netコンパクトフレームワーク2.0、VS2005を使用しています。私のコードは次のようになります。
public void zipFiles()
{
string path = "somepath";
string[] fileNames = Directory.GetFiles(path);
Array.Sort(fileNames);//sort the filename in ascending order
string lastFileName = string.Empty;
string zipFileName = null;
using (ZipFile zip = new ZipFile())
{
zip.AlternateEncodingUsage = ZipOption.AsNecessary;
zip.AddDirectoryByName("Files");
for (int i = 0; i < fileNames.Length; i++)
{
string baseFileName = fileNames[i];
if (baseFileName != lastFileName)
{
zipFileName=String.Format("Zip_{0}.zip",DateTime.Now.ToString("yyyy-MMM-dd-HHmmss"));
zip.AddFile(baseFileName, "Files");
lastFileName = baseFileName;
}
}
zip.Save(zipFileName);
}
}
問題:フォルダには同じ名前の 3 つのファイルがありますが、拡張子は異なります。現在、これらのファイルはデバイスによって FTPed されているため、ファイル名はデバイスによって自動生成され、私はそれを制御できません。たとえば、フォルダには「ABC123.DON」「ABC123.TGZ」「ABC123.TSY」「XYZ456.DON」「XYZ456.TGZ」「XYZ456.TSY」の6つのファイルがあります。「ABC123」という名前の 3 つのファイルと、「XYZ456」という名前の他の 3 つのファイルを一緒に圧縮する必要があります。単一の zip フォルダー内のファイル。誰でもこれで私を助けてもらえますか?