ASP.NET 2.0 では、ファイルと共に複数のフォルダーを取得する必要があります。私たちの要件は、すべてのフォルダーを取得し、1 つの zip ファイルを作成する必要があることです。誰でもこれについて私を助けることができますか?
ありがとう。
ASP.NET 2.0 では、ファイルと共に複数のフォルダーを取得する必要があります。私たちの要件は、すべてのフォルダーを取得し、1 つの zip ファイルを作成する必要があることです。誰でもこれについて私を助けることができますか?
ありがとう。
SharpZipLib をダウンロードするときにコード サンプルを確認して、ファイルを圧縮および解凍する方法を理解することができます。以下に例を示します。
public static void Main(string[] args)
{
ZipFiles("D:\\SharpZip","D:\\Zipped.zip");
}
private static void ZipFiles(string inputDirectory, string outputDirectory)
{
if (Directory.Exists(inputDirectory))
{
string[] filenames = Directory.GetFiles(inputDirectory);
using (ZipOutputStream zipStream = new ZipOutputStream(File.Create(outputDirectory)))
{
zipStream.SetLevel(9);
byte[] buffer = new byte[4096];
foreach (string file in filenames)
{
ZipEntry entry = new ZipEntry(Path.GetFileName(file));
entry.DateTime = DateTime.Now;
zipStream.PutNextEntry(entry);
using (FileStream fs = File.OpenRead(file))
{
int sourceBytes;
do
{
sourceBytes = fs.Read(buffer, 0, buffer.Length);
zipStream.Write(buffer, 0, sourceBytes);
} while (sourceBytes > 0);
}
}
zipStream.Finish();
zipStream.Close();
}
}
}
DotNetZipを確認してください。これは非常に柔軟であり、パフォーマンスは実稼働環境に十分すぎるほどです。
Scott Mitchell は、DotNetZip を使用した ASP.Net 環境での圧縮の優れた例を示しています。