dcsimg
Login | Register   
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: .NET
Expertise: Advanced
Aug 7, 2007

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


Compressing a File with MS Visual J# .NET

The Microsoft Visual J# .NET 1.1 Class Library (vjslib.dll) contains methods you can use to compress a file. The following code demonstrates how to use them.

/* Code to zip a file/folder using Visual J# library */

using System;
using System.IO;
using java.util.zip;
using java.util;
using java.io;

namespace Zipper
{
 /// <summary>
 /// This Class provides methods to Zip a file vjslib
 /// c:\windows\microsoft.net\framework\v1.1.4322\vjslib.dll
 /// </summary>
 
 public class Zipper
 {
   #region Constructor
     public Zipper(){}
   #endregion Constructor
		
   #region Void Methods
    /*CreateZipFile Method expects the path to be zipped.
     * The path could be a directory or a single file*/
   public void CreateZipFile(string sPath)
   {
     FileOutputStream stream1 = null;
     ZipOutputStream stream2 = null;
     if (System.IO.File.Exists(sPath))
     {
	FileInfo info2 = new FileInfo(sPath);
        stream1 = new FileOutputStream(sPath.Replace
                                      (info2.Extension, ".zip"));
	stream2 = new ZipOutputStream(stream1);
			this.ZipOneFile(stream1, stream2,  sPath);
     }
     else if (Directory.Exists(sPath))
     {
	stream1 = new FileOutputStream(sPath + ".zip");
	stream2 = new ZipOutputStream(stream1);
	DirectoryInfo info1 = new DirectoryInfo(sPath);
	this.ZipDirectory(stream1, stream2, info1, sPath);
     }
     stream2.close();
     stream1.close();
     stream2.flush();
     stream1.flush();
    }

    private void CopyStream(FileInputStream src, ZipOutputStream
                                                             dest)
    {
	InputStreamReader reader1 = new InputStreamReader(src);
	OutputStreamWriter writer1 = new OutputStreamWriter(dest);
	while (reader1.ready())
	{
	  writer1.write(reader1.read());
	}
	writer1.flush();
    }
		
    /*ZipDirectory Method zips the entire directory*/
    private void ZipDirectory(FileOutputStream fos, ZipOutputStream 
                             zos, DirectoryInfo di, string SRootDir)
    {
	FileInfo[] infoArray2 = di.GetFiles();
	foreach (FileInfo info2 in infoArray2)
	{
           ZipEntry entry1 = new ZipEntry
               (info2.FullName.Substring(SRootDir.LastIndexOf(@"\")));
	   entry1.setMethod(8);
	   zos.putNextEntry(entry1);
	   FileInputStream stream1 = new FileInputStream
                                       (info2.FullName);
       	   this.CopyStream(stream1, zos);
	   zos.closeEntry();
	   stream1.close();
	}
	DirectoryInfo[] infoArray1 = di.GetDirectories();
	foreach (DirectoryInfo info1 in infoArray1)
	{
	   this.ZipDirectory(fos, zos, info1, SRootDir);
	}
     }

     /*ZipOneFile Method zips the file*/
     private void ZipOneFile(FileOutputStream fos, ZipOutputStream 
                                             zos, string sFullName)
     {
	ZipEntry entry1 = new ZipEntry(sFullName.Substring
                            (sFullName.LastIndexOf(@"\")));
 	entry1.setMethod(8);
	zos.putNextEntry(entry1);
	FileInputStream stream1 = new FileInputStream(sFullName);
	this.CopyStream(stream1, zos);
	zos.closeEntry();
	stream1.close();
     }

     #endregion Void Methods

  }
}
Srinath MS
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
×
We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.
Thanks for your registration, follow us on our social networks to keep up-to-date