public void run() {
		long current = 0, size = totalSize();
		
		for (Pair<File,File> pair : pairs) {
			File src = pair.get1();
			File dst = pair.get2();
			if (src.exists() && src.isFile()) {
				if (!dst.exists() || dst.isFile()) {
					try {
						if (dst.exists()) dst.delete();
						dst.createNewFile();
						progressStr = src.getAbsolutePath()+"\n"+dst.getAbsolutePath();
						
						FileInputStream fis = new FileInputStream(src);
						BufferedInputStream bis = new BufferedInputStream(fis);
						
						FileOutputStream fos = new FileOutputStream(dst);
						BufferedOutputStream bos = new BufferedOutputStream(fos);
						
						int value;
						while ((value = bis.read()) != -1) {
							progress = ((float)current)/((float)size);
							bos.write(value);
							current++;
						}
						
						bos.flush();
						bos.close();
						fos.close();
						
						bis.close();
						fis.close();
					} catch (Exception e) {e.printStackTrace();}
				}
			}
		}
		progress = 1f;
		super.run();
	}