FileOperator 文件(夹)操作类
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 文件(夹)操作类的更多相关文章
- c# 封装的文件夹操作类之复制文件夹
c# 封装的文件夹操作类之复制文件夹 一.复制文件夹原理: 1.递归遍历文件夹 2.复制文件 二.FolderHelper.cs /// <summary> /// 文件夹操作类 /// ...
- [IO] C# DirFileHelper文件与文件夹操作类教程与源码下载 (转载)
点击下载 DirFileHelper.zip 主要功能如下所示 // 摘要: // 向文本文件的尾部追加内容 // // 参数: // filePath: // 文件的绝对路径 // // conte ...
- [No0000DC]C# FileHelper 本地文件、文件夹操作类封装FileHelper
using System; using System.Diagnostics; using System.IO; using System.Text; using Shared; namespace ...
- 文件及文件夹操作- File类、Directory 类、FileInfo 类、DirectoryInfo 类
文件及文件夹操作: C/S:WinForm可以操作客户端文件 Client ServerB/S:Brower Server 命名空间:using system .IO; 1. File类: 创建:Fi ...
- CFileDialog(文件夹对话框类)和CFontDialog(字体设置对话框类)的使用学习
CFileDialog(文件夹对话框类) 主要用于文件的保存,另存,打开,关闭等功能 功能“另存为”的实现: void CTXTDlg::OnFileSaveas() { LPCTSTR szFilt ...
- .Net文件*夹*操作
一.文件夹操作 Directory类,DirectoryInfo类.使用using System.IO命名空间 (一)创建文件夹 方法一: private string path = @"F ...
- iOS开发——Swift篇&文件,文件夹操作
文件,文件夹操作 ios开发经常会遇到读文件,写文件等,对文件和文件夹的操作,这时就可以使用NSFileManager,NSFileHandle等类来实现. 下面总结了各种常用的操作: 1,遍 ...
- [No000083]文件与文件夹操作
#region Folder option 文件夹操作 /// <summary> /// 指定目录是否存在 /// </summary> /// <param name ...
- PHP 文件夹操作「复制、删除、查看大小」递归实现
PHP虽然提供了 filesize.copy.unlink 等文件操作的函数,但是没有提供 dirsize.copydir.rmdirs 等文件夹操作的函数(rmdir也只能删除空目录).所以只能手动 ...
随机推荐
- Huawei E1750 Asterisk
http://wiki.e1550.mobi/doku.php?id=installation https://wiki.asterisk.org/wiki/display/AST/Mobile+Ch ...
- v-if 与 v-show 区别
使用 v-if 时,如果在初始化渲染的时候条件为false, 那么不会做任何事情. v-if 首次局部编译不会发生,直到条件变为true. v-if 切换显示内容的消耗更高,而 v-show 在初始化 ...
- POJ1639顶点度限制最小生成树
题目:http://poj.org/problem?id=1639 见汪汀的<最小生成树问题的拓展>. 大体是先忽略与根节点相连的边,做一遍kruscal,得到几个连通块和一个根节点: 然 ...
- 最新hadoop入门教程汇总篇(附详细图文步骤)
关于hadoop的分享此前一直都是零零散散的想到什么就写什么,整体写的比较乱吧.最近可能还算好的吧,毕竟花了两周的时间详细的写完的了hadoop从规划到环境安装配置等全部内容.写过程不是很难,最烦的可 ...
- 可视化mark
待尝试研究的可视化组件及产品: 开源组件 商业组件 开源组件 zeppelin Caravel D3.js Flare talend(ETL) pentaho spagoBI NanoCubs Dyg ...
- Django 中 python manage.py makemigrations 与 python manage.py migrate
执行 python manage.py makemigrations django根据settings.py里面的INSTALLED_APPS项设置找到对应app里的models.py,应用里面创建的 ...
- Python基础学习笔记,进阶学习笔记 出处
参考 虫师-博客 http://www.cnblogs.com/fnng/category 随笔分类相关文章
- Python 编程规范梳理
缘由 由于项目团队中新加入了几名攻城狮, 大家之前的背景各不相同,写出的代码也是“风格迥异”.正所谓:“无规则不成方圆”,因此需要对编程进行必要的规范. 整体的思路是:依照PEP8 Python 编码 ...
- Centos7扩展磁盘空间(LVM管理)
vmware或hyperv,扩容磁盘,本例中使用的是vmware,关闭系统,在vmware—>设置—>硬盘—>扩展—>输入数字大于当前系统内存—>点击扩展,如图: 1. ...
- SDL播放音频的时候发现SDL_OpenAudioDevice打开一直失败
1:在使用SDL播放音频的时候发现SDL_OpenAudioDevice打开一直失败,导致SDL不能进入回调函数. 使用SDL_GetError()打印错误提示XAudio2: XAudio2Crea ...