Android FileUtils 文件操作类

2019-08-07 10:00| 发布者: |

Context.getPackageName; // 用于获取APP的所在包目录
Context.getPackageCodePath; //来获得当前应用程序对应的apk文件的路径
Context.getPackageResourcePath; // 获取该程序的安装包路径
Context.getDatabasePath; //返回通过Context.openOrCreateDatabase创建的数据库文件
Environment.getDataDirectory.getPath; // 获得根目录/data
Environment.getDownloadCacheDirectory.getPath; //获得缓存目录/cache
Environment.getExternalStorageDirectory.getPath; //获得SD卡目录/mnt/sdcard
Environment.getRootDirectory.getPath; // 获得系统目录/system
//澳门维尼File.separator 代表 "/"

 

文件操作

String path = File.getPath;//获得文件或文件夹的绝对路径
String path = File.getAbsoultePath;//获得文件或文件夹的相对路径
String parentPath = File.getParent;//获得文件或文件夹的父目录
String Name = File.getName;//获得文件或文件夹的名称
File.mkDir; //建立文件夹
File.createNewFile;//建立文件
File[] files = File.listFiles;//列出文件夹下的所有文件和文件夹名
File.isDirectory;//true是文件夹,false是文件
File.renameTo;//修改文件夹和文件名
File.delete;//删除文件夹或文件

 

资源文件assets和RW

res/raw:文件会被映射到R.java文件中,访问的时候直接通过资源ID访问,没有有目录结构

assets:不会映射到R.java文件中,通过AssetManager来访问,能有目录结构

//raw: 
InputStream is =getResources.openRawResource; 
//assets: 
AssetManager am = getAssets; 
InputStream is = am.open;

 

从资源文件中获取Bitmap

Bitmap bmp=BitmapFactory.decodeResource, R.drawable.ico);

FileUtils文件操作类


public class FileUtils {
 //检查SDCard存在并且可以读写
 public static boolean isSDCardState{
 return Environment.getExternalStorageState.equals;
 * 判断文件是否已经存在
 *@param fileName 要检查的文件名
 * @return boolean, true表示存在,false表示不存在
 public static boolean isFileExist {
 File file = new File;
 return file.exists;
 * 新建目录
 * @param path 目录的绝对路径
 * @return 创建成功则返回true
 public static boolean createFolder{
 File file = new File;
 return file.mkdir;
 * 创建文件
 *@param path 文件所在目录的目录名
 * @param fileName 文件名
 * @return 文件新建成功则返回true
 public static boolean createFile {
 File file = new File;
 if ) {
 return false;
 } else {
 try {
 return file.createNewFile;
 } catch  {
 e.printStackTrace;
 return false;
 * 删除单个文件
 * @param path 文件所在的绝对路径
 * @param fileName 文件名
 * @return 删除成功则返回true
 public static boolean deleteFile {
 File file = new File;
 return file.exists file.delete;
 * 删除一个目录
 * @param dir 目录绝对路径
 public static boolean deleteDirection {
 if  || dir.isFile) {
 return false;
 for ) {
 if ) {
 file.delete;
 } else if ) {
 deleteDirection;//递归
 dir.delete;
 return true;
 * 将字符串写入文件
 *@param text 写入的字符串
 * @param fileStr 文件的绝对路径
 * @param isAppend true从尾部写入,false从头覆盖写入
 public static void writeFile {
 try {
 File file = new File;
 File parentFile = file.getParentFile;
 if ) {
 parentFile.mkdirs;
 if ) {
 file.createNewFile;
 FileOutputStream f = new FileOutputStream;
 f.write);
 f.close;
 } catch  {
 // TODO Auto-generated catch block
 e.printStackTrace;
 * 拷贝文件
 *@param srcPath 绝对路径
 * @param destDir 目标文件所在目录
 * @return boolean true拷贝成功
 public static boolean copyFile{
 boolean flag = false;
 File srcFile = new File; // 源文件
 if ){
 Log.i;
 return false;
 // 获取待复制文件的文件名
 String fileName = srcPath.substring);
 String destPath = destDir + fileName;
 if ){
 Log.i;
 return false;
 File destFile = new File; // 目标文件
 if  destFile.isFile){
 Log.i;
 return false;
 File destFileDir = new File;
 destFileDir.mkdirs;
 try{
 FileInputStream fis = new FileInputStream;
 FileOutputStream fos = new FileOutputStream;
 byte[] buf = new byte[1024];
 int c;
 while ) != -1) {
 fos.write;
 fis.close;
 fos.close;
 flag = true;
 }catch {
 e.printStackTrace;
 return flag;
 * 重命名文件
 *@param oldPath 旧文件的绝对路径
 * @param newPath 新文件的绝对路径
 * @return 文件重命名成功则返回true
 public static boolean renameTo{
 if ){
 Log.i;
 return false;
 File oldFile = new File;
 File newFile = new File;
 return oldFile.renameTo;
 * 计算某个文件的大小
 *@param path 文件的绝对路径
 *@return 文件大小
 public static long getFileSize{
 File file = new File;
 return file.length;
 *计算某个文件夹的大小
 *@param file 目录所在绝对路径
 * @return 文件夹的大小
 public static double getDirSize {
 if ) {
 //如果是目录则递归计算其内容的总大小
 if ) {
 File[] children = file.listFiles;
 double size = 0;
 for 
 size += getDirSize;
 return size;
 } else {//如果是文件则直接返回其大小,以“兆”为单位
 return  file.length / 1024 / 1024;
 } else {
 return 0.0;
 * 获取某个路径下的文件列表
 * @param path 文件路径
 * @return 文件列表File[] files
 public static File[] getFileList {
 File file = new File;
 if ){
 File[] files = file.listFiles;
 if {
 return files;
 }else{
 return null;
 }else{
 return null;
 * 计算某个目录包含的文件数量
 *@param path 目录的绝对路径
 * @return 文件数量
 public static int getFileCount{
 File directory = new File;
 File[] files = directory.listFiles;
 return files.length;
 * 获取SDCard 总容量大小
 *@param path 目录的绝对路径
 * @return 总容量大小
 * */
 public long getSDCardTotal{
 if){
 StatFs statfs = new StatFs;
 //获取SDCard的Block总数
 long totalBlocks = statfs.getBlockCount;
 //获取每个block的大小
 long blockSize = statfs.getBlockSize;
 //计算SDCard 总容量大小MB
 return totalBlocks*blockSize/1024/1024;
 }else{
 return 0;
 * 获取SDCard 可用容量大小
 *@param path 目录的绝对路径
 * @return 可用容量大小
 * */
 public long getSDCardFree{
 if){
 StatFs statfs = new StatFs;
 //获取SDCard的Block可用数
 long availaBlocks = statfs.getAvailableBlocks;
 //获取每个block的大小
 long blockSize = statfs.getBlockSize;
 //计算SDCard 可用容量大小MB
 return availaBlocks*blockSize/1024/1024;
 }else{
 return 0;
}

 

 
<
>
关于我们
AB模版网成立于2014年,我们是一家专注用户体验设计开发与互联网品牌建设的设计公司,创立至今为2000多位客户提供了创新与专业的设计方案。设计服务范围包括:交互原型设计、产品视觉设计、网站设计与开发建设、移动及软件产品界面设计、图标设计、品牌及平面设计等。

联系我们

13588889999服务时间:9:00-18:00)

admin@adminbuy.cn

官方微信官方微信

部门热线

前   台:13588889999
业务部:13588889999
客服部:13588889999
技术部:13566667777
人事部:13566667777

咨询电话13588889999 返回顶部
返回顶部