package com.swifty.fillcolor.util; import android.graphics.BitmapFactory; import android.os.Environment; import com.swifty.fillcolor.controller.main.TimestampComparator; import com.swifty.fillcolor.model.bean.LocalImageBean; import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.regex.Pattern; /** * Created by Swifty.Wang on 2015/9/1. */ public class FileUtils { public static List<LocalImageBean> obtainLocalImages() { List<LocalImageBean> localImageBeans = new ArrayList<>(); String path = Environment.getExternalStorageDirectory().getPath() + "/MyFCWorks"; File f = new File(path); if (f != null && f.listFiles() != null) { File file[] = f.listFiles(); for (int i = 0; i < file.length; i++) { if (numberFileName(file[i].getName())) { localImageBeans.add(new LocalImageBean(file[i].getName(), path + "/" + file[i].getName(), DateTimeUtil.formatTimeStamp(file[i].lastModified()), file[i].lastModified(), getDropboxIMGSize(file[i]))); L.d("Files", path + "/" + file[i].getName() + ", " + file[i].lastModified()); } } } TimestampComparator timeComparator = new TimestampComparator(); Collections.sort(localImageBeans, timeComparator); return localImageBeans; } private static boolean numberFileName(String name) { String formatName = name.replace(".png", "").replace(".jpg", ""); Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$"); return pattern.matcher(formatName).matches(); } public static boolean deleteFile(String url) { File file = new File(url.replace("file://", "")); if (file != null) { return file.delete(); } else { return false; } } public static void deleteAllPaints() { File dir = new File(Environment.getExternalStorageDirectory().getPath() + "/MyFCWorks"); if (dir.isDirectory()) { String[] children = dir.list(); for (int i = 0; i < children.length; i++) { new File(dir, children[i]).delete(); } dir.delete(); } } private static float getDropboxIMGSize(File file) { BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(file.getPath(), options); float imageHeight = options.outHeight; float imageWidth = options.outWidth; return imageWidth / imageHeight; } }