home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Frame;
- import java.awt.Label;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
-
- class Split extends Thread {
- private String path = "";
- private int size;
- private Label info;
- private Frame parent;
-
- public Split(String var1, int var2, Label var3, Frame var4) {
- this.path = var1;
- this.size = Math.abs(var2) * 1024;
- this.info = var3;
- this.parent = var4;
- }
-
- private void setMessage(String var1) {
- this.info.setText(var1);
- }
-
- public void run() {
- try {
- this.splitfile(this.path, this.size);
- } catch (Exception var2) {
- new Msg(this.parent, "ERROR", ((Throwable)var2).toString());
- }
- }
-
- void splitfile(String var1, int var2) {
- Runtime var3 = Runtime.getRuntime();
- Object var4 = null;
- Object var5 = null;
- long var6 = 0L;
- long var8 = 0L;
- long var10 = 0L;
- int var13 = 0;
- int var14 = 0;
- int var15 = 0;
- int var16 = 0;
- File var17 = new File(var1);
- if (!var17.exists()) {
- new Msg(this.parent, "ERROR", "No such file:\n" + var1);
- } else if (!var17.canRead()) {
- new Msg(this.parent, "ERROR", "Cannot read file:\n" + var1);
- } else {
- var6 = var17.length();
-
- try {
- var24 = new FileInputStream(var17);
- } catch (Exception var21) {
- new Msg(this.parent, "ERROR", "File not found:\n" + var1);
- return;
- }
-
- if (var6 < (long)var2) {
- new Msg(this.parent, "INFO", "Splitting unnecessary.\nFile is less than\n" + var2 / 1024 + " Kbytes long");
- } else if (var6 == (long)var2) {
- new Msg(this.parent, "INFO", "Splitting unnecessary.\nFile is " + var2 / 1024 + " Kbytes long");
- } else {
- this.setMessage("0 %");
-
- while(var8 < var6) {
- if (var6 - var8 < (long)var2) {
- var14 = (int)(var6 - var8);
- } else {
- var14 = var2;
- }
-
- var10 = 0L;
-
- try {
- FileOutputStream var23 = new FileOutputStream(var1 + "." + var16);
-
- while(var10 < (long)var14) {
- var13 = (int)((double)var3.freeMemory() * 0.9);
- if (var13 <= 256) {
- new Msg(this.parent, "Warning", "There isn't enough memory to continue.\nTry quitting other running applications, if any.");
- this.setMessage("Out of Memory");
- return;
- }
-
- byte[] var12;
- if ((long)var14 - var10 < (long)var13) {
- var12 = new byte[(int)((long)var14 - var10)];
- } else {
- var12 = new byte[var13];
- }
-
- var15 = var24.read(var12);
- var8 += (long)var15;
- var10 += (long)var15;
- var23.write(var12);
- Object var27 = null;
- this.setMessage(Math.round((double)100.0F * ((double)var8 / (double)var6)) + " %");
- }
-
- var23.close();
- } catch (Exception var22) {
- new Msg(this.parent, "ERROR", ((Throwable)var22).getMessage());
- if (var24 instanceof FileInputStream) {
- try {
- var24.close();
- return;
- } catch (Exception var19) {
- return;
- }
- }
-
- return;
- }
-
- ++var16;
- this.setMessage(Math.round((double)100.0F * ((double)var8 / (double)var6)) + " %");
- }
-
- this.setMessage(Math.round((double)100.0F * ((double)var8 / (double)var6)) + " %, " + var8 + " bytes, " + var16 + " files.");
- if (var24 instanceof FileInputStream) {
- try {
- var24.close();
- } catch (Exception var20) {
- }
- }
-
- new Msg(this.parent, "DONE", "Done... splitted to " + var16 + " files.\nTotal " + var8 + " bytes");
- }
- }
- }
- }
-