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;    }}
0 0
原创粉丝点击