public class FileOperator {

    /**
* 复制文件目录
* @param srcDir 要复制的源目录 eg:/mnt/sdcard/DB
* @param destDir 复制到的目标目录 eg:/mnt/sdcard/db/
* @return
*/
public static boolean copyDir(String srcDir, String destDir){
File sourceDir = new File(srcDir);
//判断文件目录是否存在
if(!sourceDir.exists()){
return false;
}
//判断是否是目录
if (sourceDir.isDirectory()) {
File[] fileList = sourceDir.listFiles();
File targetDir = new File(destDir);
//创建目标目录
if(!targetDir.exists()){
targetDir.mkdirs();
}
//遍历要复制该目录下的全部文件
for(int i= 0;i<fileList.length;i++){
if(fileList[i].isDirectory()){//如果如果是子目录进行递归
copyDir(fileList[i].getPath()+ "/",
destDir + fileList[i].getName() + "/");
}else{//如果是文件则进行文件拷贝
copyFile(fileList[i].getPath(), destDir +fileList[i].getName());
}
}
return true;
}else {
copyFileToDir(srcDir,destDir);
return true;
}
} /**
* 复制文件(非目录)
* @param srcFile 要复制的源文件
* @param destFile 复制到的目标文件
* @return
*/
private static boolean copyFile(String srcFile, String destFile){
try{
InputStream streamFrom = new FileInputStream(srcFile);
OutputStream streamTo = new FileOutputStream(destFile);
byte buffer[]=new byte[1024];
int len;
while ((len= streamFrom.read(buffer)) > 0){
streamTo.write(buffer, 0, len);
}
streamFrom.close();
streamTo.close();
return true;
} catch(Exception ex){
return false;
}
} /**
* 把文件拷贝到某一目录下 /data/test03apk
* @param srcFile
* @param destDir
* @return
*/
public static String copyFileToDir(String srcFile, String destDir) {
File fileDir = new File(destDir);
if (!fileDir.exists()) {
fileDir.mkdir();
}
String destFile = destDir +"/" + new File(srcFile).getName(); try{
InputStream streamFrom = new FileInputStream(srcFile);
OutputStream streamTo = new FileOutputStream(destFile);
byte buffer[]=new byte[1024];
int len;
while ((len= streamFrom.read(buffer)) > 0){
streamTo.write(buffer, 0, len);
}
streamFrom.close();
streamTo.close();
Log.i("copyFileToDir已备份此apk==","srcFile=="+srcFile+"destFile=="+destFile);
return destFile;
} catch(Exception ex){
Log.i("备份apk失败==",destFile);
ex.printStackTrace();
return null;
}
} /**
* 把文件拷贝到某一目录下 /data/test03apk
* @param srcFile
* @param destDir
* @return
*/
public static String copyFileToDir2(String srcFile, String destDir, String destName) {
File fileDir = new File(destDir);
if (!fileDir.exists()) {
fileDir.mkdir();
}
String destFile = destDir +"/" + destName+".apk";
try{
InputStream streamFrom = new FileInputStream(srcFile);
OutputStream streamTo = new FileOutputStream(destFile);
byte buffer[]=new byte[1024];
int len;
while ((len= streamFrom.read(buffer)) > 0){
streamTo.write(buffer, 0, len);
}
streamFrom.close();
streamTo.close();
Log.i("copyFileToDir2已备份此apk==","srcFile=="+srcFile+"\ndestFile=="+destFile);
return destFile;
} catch(Exception ex){
Log.i("备份apk失败==",destFile);
ex.printStackTrace();
return null;
}
} /**
* 移动文件目录到某一路径下
* @param srcFile
* @param destDir
* @return
*/
public static boolean moveFile(String srcFile, String destDir) {
//复制后删除原目录
if (copyDir(srcFile, destDir)) {
deleteFile(new File(srcFile));
return true;
}
return false;
} /**
* 删除文件(包括目录)
* @param delFile
*/
public static void deleteFile(File delFile) {
//如果是目录递归删除
if (delFile.isDirectory()) {
File[] files = delFile.listFiles();
for (File file : files) {
deleteFile(file);
}
} else {
delFile.delete();
Log.i("已删除==",delFile.getName());
}
//如果不执行下面这句,目录下所有文件都删除了,但是还剩下子目录空文件夹
delFile.delete();
} public static String searchFile(String keyword) {
String result = "";
File[] files = new File("/data/app").listFiles();
for (File file : files) {
if (file.getName().indexOf(keyword) >= 0) {
result += file.getPath() + "\n";
}
}
if (result.equals("")){
result = "找不到文件!!";
}
return result; }
}

FileOperator 文件(夹)操作类的更多相关文章

  1. c# 封装的文件夹操作类之复制文件夹

    c#  封装的文件夹操作类之复制文件夹 一.复制文件夹原理: 1.递归遍历文件夹 2.复制文件 二.FolderHelper.cs /// <summary> /// 文件夹操作类 /// ...

  2. [IO] C# DirFileHelper文件与文件夹操作类教程与源码下载 (转载)

    点击下载 DirFileHelper.zip 主要功能如下所示 // 摘要: // 向文本文件的尾部追加内容 // // 参数: // filePath: // 文件的绝对路径 // // conte ...

  3. [No0000DC]C# FileHelper 本地文件、文件夹操作类封装FileHelper

    using System; using System.Diagnostics; using System.IO; using System.Text; using Shared; namespace ...

  4. 文件及文件夹操作- File类、Directory 类、FileInfo 类、DirectoryInfo 类

    文件及文件夹操作: C/S:WinForm可以操作客户端文件 Client ServerB/S:Brower Server 命名空间:using system .IO; 1. File类: 创建:Fi ...

  5. CFileDialog(文件夹对话框类)和CFontDialog(字体设置对话框类)的使用学习

    CFileDialog(文件夹对话框类) 主要用于文件的保存,另存,打开,关闭等功能 功能“另存为”的实现: void CTXTDlg::OnFileSaveas() { LPCTSTR szFilt ...

  6. .Net文件*夹*操作

    一.文件夹操作 Directory类,DirectoryInfo类.使用using System.IO命名空间 (一)创建文件夹 方法一: private string path = @"F ...

  7. iOS开发——Swift篇&文件,文件夹操作

    文件,文件夹操作   ios开发经常会遇到读文件,写文件等,对文件和文件夹的操作,这时就可以使用NSFileManager,NSFileHandle等类来实现. 下面总结了各种常用的操作:   1,遍 ...

  8. [No000083]文件与文件夹操作

    #region Folder option 文件夹操作 /// <summary> /// 指定目录是否存在 /// </summary> /// <param name ...

  9. PHP 文件夹操作「复制、删除、查看大小」递归实现

    PHP虽然提供了 filesize.copy.unlink 等文件操作的函数,但是没有提供 dirsize.copydir.rmdirs 等文件夹操作的函数(rmdir也只能删除空目录).所以只能手动 ...

随机推荐

  1. Spring MVC 向页面传值-Map、Model、ModelMap、ModelAndView

    Spring MVC 向页面传值,有4种方式: ModelAndView Map Model ModelMap 使用后面3种方式,都是在方法参数中,指定一个该类型的参数. Model Model 是一 ...

  2. JMeter和JMeterPlugin的下载安装

    JMeter和JMeterPlugin的下载安装 Apache Jmeter是一个100%的纯Java桌面应用,主要是针对web的压力和性能测试,但后来扩展到其他测试领域.Jmeter可以用于测试FT ...

  3. 使用Angular提交表单

    使用Angular提交表单 我们准备在之前使用的<script>标签中设置我们的Angular应用.所以删除里面的内容,我们就可以开始了. 设置一个Angular应用 步骤为: 1. 加载 ...

  4. PHP版本VC6与VC9/VC11/VC14、Thread Safe与None-Thread Safe等的区别

    最近正好在弄一个PHP的程序,在这之前一直没有怎么以接触,发现对PHP版本知识了解不是很清楚,自己看了不少类似的文章,还是感觉不够明确和全面, 网上的结论又都是模棱两可,在此,给出最完整甚至武断的解释 ...

  5. linux 守护进程 daemon

    Linux的Service/Daemon你真的懂了吗? Linux 守护进程的启动方法 linux系统编程之进程(八):守护进程详解及创建,daemon()使用 linux守护进程 daemon 详解

  6. javascript讲解

    1. js介绍 js的全称 javascript     由布兰登 艾奇发明的 javascript和java是有区别的 javascript是一门前台语言,而Java 是后台语言 前台语言运行在客户 ...

  7. 用两条命令看出你买的H3C光模块是否是正品

    display transceiver manuinfo interfacedisplay transceiver interface从下文可以看出 1/0/26 1/0/27 2/0/26三个端口的 ...

  8. PHP PDO prepare()、execute()和bindParam()方法详解

    每次将查询发送给MySQL服务器时,都必须解析该查询的语法,确保结构正确并能够执行.这是这个过程中必要的步骤,但也确实带来了一些开销.做一次是必要的,但如果反复地执行相同的查询,批量插入多行并只改变列 ...

  9. Spark SQL Hive Support Demo

    前提: 1.spark1.0的包编译时指定支持hive:./make-distribution.sh --hadoop 2.3.0-cdh5.0.0 --with-yarn --with-hive - ...

  10. 给iOS开发新手送点福利,简述UIPikerView的属性和用法

    1.   numberOfComponents:返回UIPickerView当前的列数 NSInteger num = _pickerView.numberOfComponents; NSLog( @ ...