android 删除文件,打开指定的文件类型
16lz
2021-12-04
android 删除文件,打开指定的文件类型 public class FileUtils {
/** * 删除指定文件 * * @param fileNames */ public static void deleteFiles(String... fileNames) { if (fileNames.length <= 0) return; for (int i = 0; i < fileNames.length; i++) { File file = new File(fileNames[i]); if (file.exists()) file.delete();
} }
/** * 删除指定文件夹下的所有文件 * * @param path * @return */ public static boolean delAllFile(String path) { boolean flag = false; File file = new File(path); if (!file.exists()) { return flag; } if (!file.isDirectory()) { return flag; } String[] tempList = file.list(); File temp = null; for (int i = 0; i < tempList.length; i++) { if (path.endsWith(File.separator)) { temp = new File(path + tempList[i]); } else { temp = new File(path + File.separator + tempList[i]); } if (temp.isFile()) { long lastModeify = temp.lastModified(); long current = new Date().getTime(); Log.e("文件创建时间", "current=" + current + " lastModeify=" + lastModeify); if (current - lastModeify > (1000 * 60 * 60 * 24 * 3)) { temp.delete(); } } if (temp.isDirectory()) { delAllFile(path + "/" + tempList[i]);// 先删除文件夹里面的文件 flag = true; } } return flag; }
/** * 文件是否存在 * * @param nativePath * @return */ public static boolean isExists(String nativePath) { File file = new File(nativePath); return file.exists();
}
/** * 打开文件的方式 * * @param f文件对象 */ public static void openFile(File f, Context context) { if (!f.exists()) {
Toast.makeText(context, "文件尚未下载,无法查看,请您先下载文件!", Toast.LENGTH_SHORT) .show(); return; }
Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW);
/* 调用getMIMEType()来取得MimeType */ String type = getMIMEType(f); /* 设置intent的file与MimeType */ intent.setDataAndType(Uri.fromFile(f), type); context.startActivity(intent); }
/* 判断文件MimeType的method */ private static String getMIMEType(File f) { String type = ""; String fName = f.getName(); /* 取得扩展名 */ String end = fName .substring(fName.lastIndexOf(".") + 1, fName.length()) .toLowerCase();
/* 依扩展名的类型决定MimeType */ if (end.equals("m4a") || end.equals("mp3") || end.equals("mid") || end.equals("xmf") || end.equals("ogg") || end.equals("wav") || end.equals("wma")) { type = "audio"; } else if (end.equals("3gp") || end.equals("mp4")) { type = "video"; } else if (end.equals("jpg") || end.equals("gif") || end.equals("png") || end.equals("jpeg") || end.equals("bmp")) { type = "image"; } else if (end.equals("apk")) { /* android.permission.INSTALL_PACKAGES */ type = "application/vnd.android.package-archive"; } else { type = "*"; } /* 如果无法直接打开,就跳出软件列表给用户选择 */ if (end.equals("apk")) { } else { type += "/*"; } return type; }
/** * 删除指定文件 * * @param fileNames */ public static void deleteFiles(String... fileNames) { if (fileNames.length <= 0) return; for (int i = 0; i < fileNames.length; i++) { File file = new File(fileNames[i]); if (file.exists()) file.delete();
} }
/** * 删除指定文件夹下的所有文件 * * @param path * @return */ public static boolean delAllFile(String path) { boolean flag = false; File file = new File(path); if (!file.exists()) { return flag; } if (!file.isDirectory()) { return flag; } String[] tempList = file.list(); File temp = null; for (int i = 0; i < tempList.length; i++) { if (path.endsWith(File.separator)) { temp = new File(path + tempList[i]); } else { temp = new File(path + File.separator + tempList[i]); } if (temp.isFile()) { long lastModeify = temp.lastModified(); long current = new Date().getTime(); Log.e("文件创建时间", "current=" + current + " lastModeify=" + lastModeify); if (current - lastModeify > (1000 * 60 * 60 * 24 * 3)) { temp.delete(); } } if (temp.isDirectory()) { delAllFile(path + "/" + tempList[i]);// 先删除文件夹里面的文件 flag = true; } } return flag; }
/** * 文件是否存在 * * @param nativePath * @return */ public static boolean isExists(String nativePath) { File file = new File(nativePath); return file.exists();
}
/** * 打开文件的方式 * * @param f文件对象 */ public static void openFile(File f, Context context) { if (!f.exists()) {
Toast.makeText(context, "文件尚未下载,无法查看,请您先下载文件!", Toast.LENGTH_SHORT) .show(); return; }
Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW);
/* 调用getMIMEType()来取得MimeType */ String type = getMIMEType(f); /* 设置intent的file与MimeType */ intent.setDataAndType(Uri.fromFile(f), type); context.startActivity(intent); }
/* 判断文件MimeType的method */ private static String getMIMEType(File f) { String type = ""; String fName = f.getName(); /* 取得扩展名 */ String end = fName .substring(fName.lastIndexOf(".") + 1, fName.length()) .toLowerCase();
/* 依扩展名的类型决定MimeType */ if (end.equals("m4a") || end.equals("mp3") || end.equals("mid") || end.equals("xmf") || end.equals("ogg") || end.equals("wav") || end.equals("wma")) { type = "audio"; } else if (end.equals("3gp") || end.equals("mp4")) { type = "video"; } else if (end.equals("jpg") || end.equals("gif") || end.equals("png") || end.equals("jpeg") || end.equals("bmp")) { type = "image"; } else if (end.equals("apk")) { /* android.permission.INSTALL_PACKAGES */ type = "application/vnd.android.package-archive"; } else { type = "*"; } /* 如果无法直接打开,就跳出软件列表给用户选择 */ if (end.equals("apk")) { } else { type += "/*"; } return type; }
更多相关文章
- Android(安卓)Studio2.0引入so文件(亲测)
- android 设备开发 让应用程序出现在模拟器启动列表中
- [Android(安卓)Pro] 创建快捷方式,删除快捷方式,查询是否存在快捷
- android解析xml文件 Android(安卓)DOM解析XML之全球实时地震信息
- 在android里保存数据的三种形式(Saving Data)
- android tcpdump
- android Handlerr.removeCallbacksAndMessages(null)的妙用
- Android: TextView with border 带边框的TextView
- Android读写文件源码