MyException - 我的异常网
当前位置:我的异常网» 移动开发 » 资料操作

资料操作

www.MyException.Cn  网友分享于:2013-06-29  浏览:4次
文件操作

 

package com.myclover.file.service;

 

import android.content.Context;

import android.os.Environment;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

 

public class FileHelper {   

    private Context context;   

    private String SDPATH;   

    private String FILESPATH;   

 

    public FileHelper(Context context) {   

        this.context = context;   

        SDPATH = Environment.getExternalStorageDirectory().getPath() + "\\";   

        FILESPATH = this.context.getFilesDir().getPath() + "\\";   

    }   

 

    /**  

     * 在SD卡上创建文件  

     *   

     * @throws IOException  

     */  

    public File creatSDFile(String fileName) throws IOException {   

        File file = new File(SDPATH + fileName);   

        file.createNewFile();   

        return file;   

    }   

 

    /**  

     * 删除SD卡上的文件  

     *   

     * @param fileName  

     */  

    public boolean delSDFile(String fileName) {   

        File file = new File(SDPATH + fileName);   

        if (file == null || !file.exists() || file.isDirectory())   

            return false;   

        file.delete();   

        return true;   

    }   

 

    /**  

     * 在SD卡上创建目录  

     *   

     * @param dirName  

     */  

    public File creatSDDir(String dirName) {   

        File dir = new File(SDPATH + dirName);   

        dir.mkdir();   

        return dir;   

    }   

 

    /**  

     * 删除SD卡上的目录  

     *   

     * @param dirName  

     */  

    public boolean delSDDir(String dirName) {   

        File dir = new File(SDPATH + dirName);   

        return delDir(dir);   

    }   

 

    /**  

     * 修改SD卡上的文件或目录名  

     *   

     * @param fileName  

     */  

    public boolean renameSDFile(String oldfileName, String newFileName) {   

        File oleFile = new File(SDPATH + oldfileName);   

        File newFile = new File(SDPATH + newFileName);   

        return oleFile.renameTo(newFile);   

    }   

 

    /**  

     * 拷贝SD卡上的单个文件  

     *   

     * @param path  

     * @throws IOException  

     */  

    public boolean copySDFileTo(String srcFileName, String destFileName)   

            throws IOException {   

        File srcFile = new File(SDPATH + srcFileName);   

        File destFile = new File(SDPATH + destFileName);   

        return copyFileTo(srcFile, destFile);   

    }   

 

    /**  

     * 拷贝SD卡上指定目录的所有文件  

     *   

     * @param srcDirName  

     * @param destDirName  

     * @return  

     * @throws IOException  

     */  

    public boolean copySDFilesTo(String srcDirName, String destDirName)   

            throws IOException {   

        File srcDir = new File(SDPATH + srcDirName);   

        File destDir = new File(SDPATH + destDirName);   

        return copyFilesTo(srcDir, destDir);   

    }   

 

    /**  

     * 移动SD卡上的单个文件  

     *   

     * @param srcFileName  

     * @param destFileName  

     * @return  

     * @throws IOException  

     */  

    public boolean moveSDFileTo(String srcFileName, String destFileName)   

            throws IOException {   

        File srcFile = new File(SDPATH + srcFileName);   

        File destFile = new File(SDPATH + destFileName);   

        return moveFileTo(srcFile, destFile);   

    }   

 

    /**  

     * 移动SD卡上的指定目录的所有文件  

     *   

     * @param srcDirName  

     * @param destDirName  

     * @return  

     * @throws IOException  

     */  

    public boolean moveSDFilesTo(String srcDirName, String destDirName)   

            throws IOException {   

        File srcDir = new File( srcDirName);   

        File destDir = new File( destDirName);   

        return moveFilesTo(srcDir, destDir);   

    }   

 

 

    /**********************************************************************************************************/  

    /*********************************************************************************************************/  

 

    /**  

     * 删除一个文件  

     *   

     * @param file  

     * @return  

     */  

    public boolean delFile(File file) {   

        if (file.isDirectory())   

            return false;   

        return file.delete();   

    }   

 

    /**  

     * 删除一个目录(可以是非空目录)  

     *   

     * @param dir  

     */  

    public boolean delDir(File dir) {   

        if (dir == null || !dir.exists() || dir.isFile()) {   

            return false;   

        }   

        for (File file : dir.listFiles()) {   

            if (file.isFile()) {   

                file.delete();   

            } else if (file.isDirectory()) {   

                delDir(file);// 递归   

            }   

        }   

        dir.delete();   

        return true;   

    }   

 

    /**  

     * 拷贝一个文件,srcFile源文件,destFile目标文件  

     *   

     * @param path  

     * @throws IOException  

     */  

    public boolean copyFileTo(File srcFile, File destFile) throws IOException {   

        if (srcFile.isDirectory() || destFile.isDirectory())   

            return false;// 判断是否是文件   

        FileInputStream fis = new FileInputStream(srcFile);   

        FileOutputStream fos = new FileOutputStream(destFile);   

        int readLen = 0;   

        byte[] buf = new byte[1024];   

        while ((readLen = fis.read(buf)) != -1) {   

            fos.write(buf, 0, readLen);   

        }   

        fos.flush();   

        fos.close();   

        fis.close();   

        return true;   

    }   

 

    /**  

     * 拷贝目录下的所有文件到指定目录  

     *   

     * @param srcDir  

     * @param destDir  

     * @return  

     * @throws IOException  

     */  

    public boolean copyFilesTo(File srcDir, File destDir) throws IOException {   

        if (!srcDir.isDirectory() || !destDir.isDirectory())   

            return false;// 判断是否是目录   

        if (!destDir.exists())   

            return false;// 判断目标目录是否存在   

        File[] srcFiles = srcDir.listFiles();   

        for (int i = 0; i < srcFiles.length; i++) {   

            if (srcFiles[i].isFile()) {   

                // 获得目标文件   

                File destFile = new File(destDir.getPath() + "\\"  

                        + srcFiles[i].getName());   

                copyFileTo(srcFiles[i], destFile);   

            } else if (srcFiles[i].isDirectory()) {   

                File theDestDir = new File(destDir.getPath() + "\\"  

                        + srcFiles[i].getName());   

                copyFilesTo(srcFiles[i], theDestDir);   

            }   

        }   

        return true;   

    }   

 

    public boolean myCopyFilesTo(File srcDir, File destDir) throws IOException {

        boolean isSuccess = true;

        if (!destDir.exists())

            isSuccess = destDir.mkdirs();

        if (!isSuccess)

            return false;// 判断目标目录是否存在

 

 

        if (!srcDir.isDirectory() || !destDir.isDirectory())

            return false;// 判断是否是目录

 

 

 

        File[] srcFiles = srcDir.listFiles();

        for (int i = 0; i < srcFiles.length; i++) {

            if (srcFiles[i].isFile()) {

                // 获得目标文件

                File destFile = new File(destDir.getPath() + "\\" + srcFiles[i].getName());

                copyFileTo(srcFiles[i], destFile);

            } else if (srcFiles[i].isDirectory()) {

                File theDestDir = new File(destDir.getPath() + "\\" + srcFiles[i].getName());

                if (!theDestDir.exists()) {

                    theDestDir.mkdirs();

                }

                myCopyFilesTo(srcFiles[i], theDestDir);

            }

        }

        return true;

    }   

 

    /**  

     * 移动一个文件  

     *   

     * @param srcFile  

     * @param destFile  

     * @return  

     * @throws IOException  

     */  

    public boolean moveFileTo(File srcFile, File destFile) throws IOException {   

        boolean iscopy = copyFileTo(srcFile, destFile);   

        if (!iscopy)   

            return false;   

        delFile(srcFile);   

        return true;   

    }   

 

    /**  

     * 移动目录下的所有文件到指定目录  

     *   

     * @param srcDir  

     * @param destDir  

     * @return  

     * @throws IOException  

     */  

    public boolean moveFilesTo(File srcDir, File destDir) throws IOException {   

        if (!srcDir.isDirectory() || !destDir.isDirectory()) {   

            return false;   

        }   

        File[] srcDirFiles = srcDir.listFiles();   

        for (int i = 0; i < srcDirFiles.length; i++) {   

            if (srcDirFiles[i].isFile()) {   

                File oneDestFile = new File(destDir.getPath() + "\\"  

                        + srcDirFiles[i].getName());   

                moveFileTo(srcDirFiles[i], oneDestFile);   

                delFile(srcDirFiles[i]);   

            } else if (srcDirFiles[i].isDirectory()) {   

                File oneDestFile = new File(destDir.getPath() + "\\"  

                        + srcDirFiles[i].getName());   

                moveFilesTo(srcDirFiles[i], oneDestFile);   

                delDir(srcDirFiles[i]);   

            }   

 

        }   

        return true;   

    }   

}  





实例:
将一个文件夹下的所有文件包括文件夹全部拷贝到令一个目录下,如果,目标目录存在要复制的文件夹则不需要重新建立,没有则建立目录:

public class FileHelper {
    private Context context;   
    public FileHelper(Context context) {   
        this.context = context;   
    }   
 
    // 复制一个目录到另一个目录,做合并处理
    public boolean copyDirFilesTo(File srcDir, File destDir) throws IOException {
        boolean isSuccess = true;
        if (!destDir.exists())
            isSuccess = destDir.mkdirs();
        if (!isSuccess)
            return false;// 判断目标目录是否存在
        if (!srcDir.isDirectory() || !destDir.isDirectory())
            return false;// 判断是否是目录
        File[] srcFiles = srcDir.listFiles();
        for (int i = 0; i < srcFiles.length; i++) {
            if (srcFiles[i].isFile()) {
                // 获得目标文件
                File destFile = new File(destDir.getPath() + "/" + srcFiles[i].getName());
                copyFileTo(srcFiles[i], destFile);
            } else if (srcFiles[i].isDirectory()) {
                File theDestDir = new File(destDir.getPath() + "/" + srcFiles[i].getName());
                if (!theDestDir.exists()) {
                    theDestDir.mkdirs();
                }
                copyDirFilesTo(srcFiles[i], theDestDir);
            }
        }
        return true;
    }

    // 拷贝一个文件,srcFile源文件,destFile目标文件
    public boolean copyFileTo(File srcFile, File destFile) throws IOException {
        if (srcFile.isDirectory() || destFile.isDirectory())
            return false;// 判断是否是文件
        FileInputStream fis = new FileInputStream(srcFile);
        FileOutputStream fos = new FileOutputStream(destFile);
        int readLen = 0;
        byte[] buf = new byte[1024];
        while ((readLen = fis.read(buf)) != -1) {
            fos.write(buf, 0, readLen);
        }
        fos.flush();
        fos.close();
        fis.close();
        return true;
    }

    // 删除一个目录(可以是非空目录)
    public boolean delDir(File dir) {
        if (dir == null || !dir.exists() || dir.isFile()) {
            return false;
        }
        for (File file : dir.listFiles()) {
            if (file.isFile()) {
                file.delete();
            } else if (file.isDirectory()) {
                delDir(file);// 递归
            }
        }
        dir.delete();
        return true;
    }

}
主文件调用:
                                                        fileHelper = new FileHelper(
                                                                YyBackUpSetting.this);
                                                        String path = Environment
                                                                .getExternalStorageDirectory()
                                                                .toString()
                                                                + "/yybackup/";
                                                        File srcFile = new File(path);
                                                        String paString = Environment
                                                                .getExternalStorageDirectorySd()
                                                                .toString()
                                                                + "/yybackup/";
                                                        File destFile = new File(paString);
                                                                fileHelper.copyDirFilesTo(srcFile,
                                                                        destFile);



文章评论

我的丈夫是个程序员
我的丈夫是个程序员
10个调试和排错的小建议
10个调试和排错的小建议
程序员都该阅读的书
程序员都该阅读的书
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
老程序员的下场
老程序员的下场
程序员应该关注的一些事儿
程序员应该关注的一些事儿
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
代码女神横空出世
代码女神横空出世
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
Java程序员必看电影
Java程序员必看电影
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
 程序员的样子
程序员的样子
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序员和编码员之间的区别
程序员和编码员之间的区别
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
编程语言是女人
编程语言是女人
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
如何成为一名黑客
如何成为一名黑客
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
旅行,写作,编程
旅行,写作,编程
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
为什么程序员都是夜猫子
为什么程序员都是夜猫子
总结2014中国互联网十大段子
总结2014中国互联网十大段子
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
那些争议最大的编程观点
那些争议最大的编程观点
程序员的鄙视链
程序员的鄙视链
我是如何打败拖延症的
我是如何打败拖延症的
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
每天工作4小时的程序员
每天工作4小时的程序员
一个程序员的时间管理
一个程序员的时间管理
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
程序员必看的十大电影
程序员必看的十大电影
漫画:程序员的工作
漫画:程序员的工作
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有