文件解压从网上找的

package com;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;

import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;

import de.innosystec.unrar.exception.RarException;

public class Test3 {
	
	
	public static void unzipFiles(String filesFolder, String outputDirectory) {
		File zipFolder = new File(filesFolder);
		String zipFiles[];
		String zipFileAbs;
		try {
			zipFiles = zipFolder.list();
			for (int i = 0; i < zipFiles.length; i++) {
				if (zipFiles[i].length() == (zipFiles[i].lastIndexOf(".zip") + 4)) {
					zipFileAbs = filesFolder + File.separator + zipFiles[i];
					unZip(zipFileAbs, outputDirectory);
				}
			}
		} catch (SecurityException ex) {
			ex.printStackTrace();
		}

	}

	private static void getDir(String directory, String subDirectory) {
		String dir[];
		File fileDir = new File(directory);
		try {
			if (subDirectory == "" && fileDir.exists() != true)
				fileDir.mkdir();
			else if (subDirectory != "") {
				dir = subDirectory.replace('\\', '/').split("/");
				for (int i = 0; i < dir.length; i++) {
					File subFile = new File(directory + File.separator + dir[i]);
					if (subFile.exists() == false)
						subFile.mkdir();
					directory += File.separator + dir[i];
				}
			}
		} catch (Exception ex) {
			System.out.println(ex.getMessage());
		}
	}

	public static void unZip(String zipFileName, String outputDirectory) {
		try {
			ZipFile zipFile = new ZipFile(zipFileName);
			Enumeration e = zipFile.getEntries();
			ZipEntry zipEntry = null;
			getDir(outputDirectory, "");
			while (e.hasMoreElements()) {
				zipEntry = (ZipEntry) e.nextElement();
				if (zipEntry.isDirectory()) {
					String name = zipEntry.getName();
					name = name.substring(0, name.length() - 1);
					File f = new File(outputDirectory + File.separator + name);
					f.mkdir();
				} else {
					String fileName = zipEntry.getName();
					fileName = fileName.replace('\\', '/');
					if (fileName.indexOf("/") != -1) {
						getDir(outputDirectory, fileName.substring(0, fileName
								.lastIndexOf("/")));
						fileName = fileName.substring(
								fileName.lastIndexOf("/") + 1, fileName
										.length());

					}

					File f = new File(outputDirectory + File.separator
							+ zipEntry.getName());

					f.createNewFile();
					InputStream in = zipFile.getInputStream(zipEntry);
					FileOutputStream out = new FileOutputStream(f);

					byte[] by = new byte[1024];
					int c;
					while ((c = in.read(by)) != -1) {
						out.write(by, 0, c);
					}
					out.close();
					in.close();
				}
			}
		} catch (Exception ex) {
			System.out.println(ex.getMessage());
		}

	}

	public static void main(String[] ar) throws RarException, IOException {
		unzipFiles("D:\\test", "D:\\test");
	}
}

 

你可能感兴趣的:(java,apache,C++,c,F#)