Android File管理
来源:互联网 发布:成都学院软件邀请赛 编辑:程序博客网 时间:2024/05/23 19:43
File四个构造函数
public File(File dir,String name)
参数为File和String,File制定构造的新的File对象的路径,而String制定新的File名字
Public File(String path)
参数为String,构造一个新的File使用制定的路径
public File(String dirPath,String name)
dirPath为指定的文件路径,name为文件的名字
public File(URI uri)
构造新的文件使用URI指定路径
File getFilesDir()
返回路径中的目录,并且保持应用程序文件。在这里获取到的是/data/data//files目录,返回一个File
File getCacheDir()
方法用于获取/data/data//cache目录
boolean delete()
删除文件
public boolean equals (Object obj)
判断obj和调用的对象是否相同
public File getAbsoluteFile()
返回一个新的文件,该文件的绝对路径是调用的File的路径
public String getAbsoluteFile()
返回该文件的绝对路径
public long getFreeSpace()
返回在分区上剩余的字节数量,包括当前File的路径
public String getName()
返回文件的名称
public String getPath()
返回文件的相对路径
public String getAbsoultePath()
返回文件的绝对路径
public long getTotalSpace()
返回分区的总字节大小
public long getUsableSpace()
返回分区可用字节的大小
public boolean IsDirectory()
判断是否为文件夹
public boolean IsFile()
判断是否为文件
public boolean isHidden()
判断是否为操作系统定义的隐藏文件
public long lastModified()
返回最后一次修改该文件的时间,以毫秒计算,从1970年1月1日开始算
public long length()
返回文件的长度,单位为字节
public boolean mkdir()
创建一个文件夹,当父目录存在才能成功创建
public boolean mkdirs()
创建一个文件夹,可可附带创建父目录
public boolean renameTo(File newPath)
重命名newpath文件夹
public boolean setWritable(boolean writable,boolean ownerOnly)
writable 如果为真,对该文件有写权限,否则没有 ownerOnly 如果为真,只对文件的拥有者有写权限,否则,对其他人也有写权限。
public boolean setWritable(boolean writable,true)
同setWritable(writable,true)一个意思
public boolean setReadOnly()
对文件只有读权限
public boolean setReadable(boolean readable,boolean ownerOnly)
readable 如果为真,对该文件有读权限 ownerOnly 如果为真,只对文件的拥有者有读权限,否则,对其他人也有读权限
public boolean setReadable(boolean readable)
同setReadable(boolean readable,true)一个意思
public String toString()
toString是一个Object类的方法,可以返回一个对象的字符串表示。
public URI toURI()
返回一个文件的URI
文件移动
现在在Java中移动一个文件已经可以不用以往的流模式了,renameTo方法可以很快将文件进行移动
/** * 移动文件 * @param srcFileName 源文件完整路径 * @param destDirName 目的目录完整路径 * @return 文件移动成功返回true,否则返回false */ public static boolean moveFile(String srcFileName, String destDirName) { File srcFile = new File(srcFileName); if(!srcFile.exists() || !srcFile.isFile()) return false; File destDir = new File(destDirName); if (!destDir.exists()) destDir.mkdirs(); return srcFile.renameTo(new File(destDirName + File.separator + srcFile.getName())); }
//获取文件大小public class FileSizeUtil { public static final int SIZETYPE_B = 1;// 获取文件大小单位为B的double值 public static final int SIZETYPE_KB = 2;// 获取文件大小单位为KB的double值 public static final int SIZETYPE_MB = 3;// 获取文件大小单位为MB的double值 public static final int SIZETYPE_GB = 4;// 获取文件大小单位为GB的double值 /** * 获取文件指定文件的指定单位的大小 * * @param filePath * 文件路径 * @param sizeType * 获取大小的类型1为B、2为KB、3为MB、4为GB * @return double值的大小 */ public static double getFileOrFilesSize(String filePath, int sizeType) { File file = new File(filePath); if (!file.exists()){ return 0; } long blockSize = 0; try { if (file.isDirectory()) { blockSize = getFileSizes(file); } else { blockSize = getFileSize(file); } } catch (Exception e) { e.printStackTrace(); Log.e("获取文件大小", "获取失败!"); } return FormetFileSize(blockSize, sizeType); } /** * 调用此方法自动计算指定文件或指定文件夹的大小 * * @param filePath * 文件路径 * @return 计算好的带B、KB、MB、GB的字符串 */ public static String getAutoFileOrFilesSize(String filePath) { File file = new File(filePath); long blockSize = 0; try { if (file.isDirectory()) { blockSize = getFileSizes(file); } else { blockSize = getFileSize(file); } } catch (Exception e) { e.printStackTrace(); Log.e("获取文件大小", "获取失败!"); } return FormetFileSize(blockSize); } /** * 获取指定文件大小 * * @param * @return * @throws Exception */ private static long getFileSize(File file) throws Exception { long size = 0; if (file.exists()) { FileInputStream fis = null; fis = new FileInputStream(file); size = fis.available(); } else { file.createNewFile(); Log.e("获取文件大小", "文件不存在!"); } return size; } /** * 获取指定文件夹 * * @param f * @return * @throws Exception */ private static long getFileSizes(File f) throws Exception { long size = 0; File flist[] = f.listFiles(); for (int i = 0; i < flist.length; i++) { if (flist[i].isDirectory()) { size = size + getFileSizes(flist[i]); } else { size = size + getFileSize(flist[i]); } } return size; } /** * 转换文件大小 * * @param fileS * @return */ private static String FormetFileSize(long fileS) { DecimalFormat df = new DecimalFormat("#.00"); String fileSizeString = ""; String wrongSize = "0B"; if (fileS == 0) { return wrongSize; } if (fileS < 1024) { fileSizeString = df.format((double) fileS) + "B"; } else if (fileS < 1048576) { fileSizeString = df.format((double) fileS / 1024) + "KB"; } else if (fileS < 1073741824) { fileSizeString = df.format((double) fileS / 1048576) + "MB"; } else { fileSizeString = df.format((double) fileS / 1073741824) + "GB"; } return fileSizeString; } /** * 转换文件大小,指定转换的类型 * * @param fileS * @param sizeType * @return */ private static double FormetFileSize(long fileS, int sizeType) { DecimalFormat df = new DecimalFormat("#.00"); double fileSizeLong = 0; switch (sizeType) { case SIZETYPE_B: fileSizeLong = Double.valueOf(df.format((double) fileS)); break; case SIZETYPE_KB: fileSizeLong = Double.valueOf(df.format((double) fileS / 1024)); break; case SIZETYPE_MB: fileSizeLong = Double.valueOf(df.format((double) fileS / 1048576)); break; case SIZETYPE_GB: fileSizeLong = Double.valueOf(df .format((double) fileS / 1073741824)); break; default: break; } return fileSizeLong; }}
- Android File管理
- 使用file explorer管理android模拟器上的文件
- 文件管理File类
- 文件管理File类
- android:file
- android file
- Android File
- Java 文件管理类File
- c语言 文件管理FILE
- Google android file system
- Android file transfer/Upload
- [Android]read file examples
- android 文件操作FILE
- android控件27 File
- Android config file
- android file path 问题
- Android:java.io.File
- Android File 文件存储
- Leetcode 349. Intersection of Two Arrays
- 异形卵
- Android Studio 入门
- 运行Eclipse提示No java virtual machine was found after searching the follwing locations
- 使用AVR Studio 4.0编程进行AVR外部中断学习
- Android File管理
- g++ stray 错误
- Eclipse下导入外部jar包的3种方式
- TreeMap Comparator按照首字母排序
- 用java实现新浪爬虫,代码完整剖析(仅针对当前SinaSignOn有效)
- mysql客户端连接不上数据库
- Spark Streaming源码解读之Executor容错安全性
- C++ 智能指针详解
- 把list中根据相同属性(合为一个),计算不同属性转化为另外一个list