private static ArrayList<File> files(File dir)
	{
		final ArrayList<File> files = new ArrayList<File>();

		if (!dir.isDirectory()) throw new IllegalArgumentException("dir Isn't a Directory! " + dir);

		for (int i = 0; i < dir.listFiles().length; i++)
		{
			if (dir.listFiles()[i].isDirectory())
			{
				files.addAll(files(dir.listFiles()[i]));
			}
			files.add(dir.listFiles()[i]);
		}

		return files;
	}