private static void getImageInfoByFile(String path) throws Exception {
		File f = new File(path);

		// System.out.println(path);
		Metadata metadata = null;
		try {
			metadata = JpegMetadataReader
					.readMetadata(new FileInputStream(path));
		} catch (Exception e) {
			// e.printStackTrace();
			// System.out.println(path);
			exceptionList.add(path);
			return;
		}

		// Directory exif = metadata.getDirectory(Exifssdfa.class);
		Directory d = metadata.getDirectory(ExifSubIFDDirectory.class);
		// for (Directory d : metadata.getDirectories()) {
		// for (Tag t : d.getTags()) {
		// System.out.println(t);
		// }
		// }
		// return;

		if (null == d) {
			ImageInfo info = new ImageInfo(f, null);
			otherList.add(info);

			return;
		}

		Collection<Tag> tags = d.getTags();
		if (tags == null) {
			System.out.println("tags==null   " + path);
			return;
		}

		Date time = null;
		String createTime = null;
		for (Tag tag : tags) {
			// System.out.println(tag);
			if (("Date/Time Original").equals(tag.getTagName())) {
				// System.out.println(tag.getDescription());
				createTime = tag.getDescription();

				break;

			}
		}

		if (createTime == null) {
			Long lm = f.lastModified();
			time = new Date(lm);

		} else {
			time = df.parse(createTime);
		}

		// System.out.println(createTime);

		String key = df1.format(time);

		// System.out.println("s " + key);

		ImageInfo info = new ImageInfo(f, time);

		List<ImageInfo> imgList = imageMap.get(key);
		if (imgList == null) {
			imgList = new ArrayList<ImageInfo>();
			imgList.add(info);
			imageMap.put(key, imgList);
		} else {
			imgList.add(info);
		}

	}