rendered paste bodyimport java.io.*;
import java.util.zip.GZIPOutputStream;
import java.io.FileOutputStream;
public class pack
{
public pack()
{
}
public void makeCacheFile()
{
try
{
packed = new GZIPOutputStream(new FileOutputStream("main_file_cache.dat"));
}
catch(Exception e)
{
System.out.println("Error making cache file");
System.out.println(e);
}
}
public void write(String Filename)
{
System.out.println("writing: "+Filename);
byte[] data = FileOperations.ReadFile(Filename);
try
{
packed.write(data, currentOffset, data.length);
//currentOffset = currentOffset+data.length;
}
catch(IOException e)
{
System.out.println("Error writing to cache file");
System.out.println(e);
}
}
public void finish()
{
try
{
packed.finish();
packed.close();
}
catch(Exception e)
{
System.out.println("Error closing cache file");
System.out.println(e);
}
}
public void ProcessRules(String rinfo)
{
System.out.println("Parsing Rules...");
String lines[] = rinfo.split("\r\n");
int CurrentIndex = 0;
for(int i = 0; i < lines.length; i++)
{
if(lines[i].startsWith("#"))
continue;
String commands[] = lines[i].split("=");
String params[] = commands[1].split(",");
if(commands[0].contains("folders"))
try
{
Folders = new String[Integer.parseInt(params[0])];
}
catch(Exception exception)
{
exception.printStackTrace();
}
if(commands[0].contains("names"))
{
Folders[CurrentIndex] = params[0];
CurrentIndex++;
}
if(commands[0].contains("cachefolder"))
cachefolder = params[0];
}
}
public static void main(String args[])
{
pack p = new pack();
p.makeCacheFile();
p.ProcessRules(FileOperations.ReadFileText("pack.dat"));
for(int i = 0; i < Folders.length; i++)
{
File dir = new File(cachefolder+Folders[i]);
File[] children = dir.listFiles();
for (int x=0; x<children.length; x++)
{
if(children[x].isFile()){
String filename = children[x].toString();
p.write(filename);
}
}
}
p.finish();
}
public static String Folders[];
public static String cachefolder;
public static GZIPOutputStream packed;
public static int currentOffset;
}