import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Locale; import android.content.Intent; import android.net.Uri; public class HelperFileUtil { /** * MIME类型与文件后缀名的匹配表 */ public static final String[][] MIME_MapTable={ //{后缀名, MIME类型} {".3gp", "video/3gpp"}, {".apk", "application/vnd.android.package-archive"}, {".asf", "video/x-ms-asf"}, {".avi", "video/x-msvideo"}, {".bin", "application/octet-stream"}, {".bmp", "image/bmp"}, {".c", "text/plain"}, {".class", "application/octet-stream"}, {".conf", "text/plain"}, {".cpp", "text/plain"}, {".doc", "application/msword"}, {".exe", "application/octet-stream"}, {".gif", "image/gif"}, {".gtar", "application/x-gtar"}, {".gz", "application/x-gzip"}, {".h", "text/plain"}, {".htm", "text/html"}, {".html", "text/html"}, {".jar", "application/java-archive"}, {".java", "text/plain"}, {".jpeg", "image/jpeg"}, {".jpg", "image/jpeg"}, {".js", "application/x-javascript"}, {".log", "text/plain"}, {".m3u", "audio/x-mpegurl"}, {".m4a", "audio/mp4a-latm"}, {".m4b", "audio/mp4a-latm"}, {".m4p", "audio/mp4a-latm"}, {".m4u", "video/vnd.mpegurl"}, {".m4v", "video/x-m4v"}, {".mov", "video/quicktime"}, {".mp2", "audio/x-mpeg"}, {".mp3", "audio/x-mpeg"}, {".mp4", "video/mp4"}, {".mpc", "application/vnd.mpohun.certificate"}, {".mpe", "video/mpeg"}, {".mpeg", "video/mpeg"}, {".mpg", "video/mpeg"}, {".mpg4", "video/mp4"}, {".mpga", "audio/mpeg"}, {".msg", "application/vnd.ms-outlook"}, {".ogg", "audio/ogg"}, {".pdf", "application/pdf"}, {".png", "image/png"}, {".pps", "application/vnd.ms-powerpoint"}, {".ppt", "application/vnd.ms-powerpoint"}, {".prop", "text/plain"}, {".rar", "application/x-rar-compressed"}, {".rc", "text/plain"}, {".rmvb", "audio/x-pn-realaudio"}, {".rtf", "application/rtf"}, {".sh", "text/plain"}, {".tar", "application/x-tar"}, {".tgz", "application/x-compressed"}, {".txt", "text/plain"}, {".wav", "audio/x-wav"}, {".wma", "audio/x-ms-wma"}, {".wmv", "audio/x-ms-wmv"}, {".wps", "application/vnd.ms-works"}, //{".xml", "text/xml"}, {".xml", "text/plain"}, {".z", "application/x-compress"}, {".zip", "application/zip"}, {"", "*/*"} }; /** * 根据文件后缀名获得对应的MIME类型。 * @param file */ public static String getMIMEType(File file) { String type="*/*"; String fName=file.getName(); int dotIndex = fName.lastIndexOf("."); if(dotIndex < 0){ return type; } //文件的后缀名 String end=fName.substring(dotIndex,fName.length()).toLowerCase(Locale.getDefault()); if(null == end || "".equals(end)) return type; //在MIME和文件类型的匹配表中找到对应的MIME类型。 for(int i=0;i<MIME_MapTable.length;i++){ if(end.equals(MIME_MapTable[i][0])) type = MIME_MapTable[i][1]; } return type; } /** * 打开文件 * @param file */ public static Intent openFile(File file){ Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(Intent.ACTION_VIEW); String type = getMIMEType(file); intent.setDataAndType(Uri.fromFile(file), type); return intent; } /** * 列出指定目录下的所有文件,不包括子目录 * @param parentPath * 指定根目录 * @return * 文件列表 */ public static List<File> getHelpFiles(String parentPath){ File file = new File(parentPath); if(!file.exists()){ file.mkdir(); } if (!file.isDirectory()) { return null; } File[] files = file.listFiles(); if(null == files || files.length < 1){ return null; } ArrayList<File> fileList = new ArrayList<File>(); for (File f : files) { if(f.isDirectory()){ continue; } fileList.add(f); } return fileList.size() > 0 ? fileList : null; } }