package com.videogo.ui.util; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Calendar; import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import com.videogo.util.LogUtil; public class EZGenerateFilePath { private static final String TAG = "GenerateFilePath"; public static String generateFilePath(String rootPath, String cameraName, String deviceSerial) throws IOException { if (rootPath == null || cameraName == null) { return null; } // 创建根目录 File file = new File(rootPath); if (!file.exists()) { if(!file.mkdir()) { LogUtil.e(TAG, "file.mkdir fail"); } } Calendar calendar = Calendar.getInstance(); // 年、月、日 int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; int day = calendar.get(Calendar.DAY_OF_MONTH); String filePath = String.format("%s/%04d%02d%02d", rootPath, year, month, day); file = new File(filePath); if (!file.exists()) { if(!file.mkdir()) { LogUtil.e(TAG, "file.mkdir fail"); } } // 年、月、日、时、分、秒 int hour = calendar.get(Calendar.HOUR_OF_DAY); int min = calendar.get(Calendar.MINUTE); int sec = calendar.get(Calendar.SECOND); int milsec = calendar.get(Calendar.MILLISECOND); // 文件格式为mnt/sdcard/VideoGo/20120901/20120901141138540_test.jpg filePath += String.format("/%04d%02d%02d%02d%02d%02d%03d_%s_%s", year, month, day, hour, min, sec, milsec, cameraName, deviceSerial); LogUtil.d(TAG, "generatFilePath file path:" + filePath); return filePath; } public static boolean saveBitmap2file(Bitmap bmp, String filename, String thumbnailPath) { CompressFormat format = CompressFormat.JPEG; int quality = 100; int qualityThumbnail = 10; OutputStream stream = null; OutputStream streamThumbnail = null; try { stream = new FileOutputStream(filename); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { streamThumbnail = new FileOutputStream(thumbnailPath); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (streamThumbnail != null) { bmp.compress(format, qualityThumbnail, streamThumbnail); }else { return false; } if (stream != null) { bmp.compress(format, quality, stream); }else { return false; } return true; } public static String generateThumbnailPath(String filePath) { if (filePath == null) { return null; } // 查找'/' int pos = filePath.lastIndexOf("/"); if (pos == -1) { return null; } // 生成目录 String dir = filePath.substring(0, pos + 1) + "thumbnails"; File file = new File(dir); if (!file.exists()) { if (!file.mkdir()) { LogUtil.e(TAG, "mkdir failed"); } } // 缩略图目录 String thumbnailPath = dir + "/" + filePath.substring(pos + 1); LogUtil.d(TAG, "generateThumbnailPath thumbnail path:" + thumbnailPath); return thumbnailPath; } }