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也只能删除空目录).所以只能手动 ...
随机推荐
- spark数据倾斜
数据倾斜的主要问题在于,某个分区数量很巨大,在做map运算的时候,将会发生别的分区task很快计算完成,但是某几个分区task的计算成为了系统的瓶颈,明显超过其他分区时间: 1.方案:Kafka的 ...
- JSOI2008——星球大战
题目:https://www.luogu.org/problemnew/show/1197 并查集. 难点是若依次去掉点在求连通块个数,时间太长. 精妙的思维:先全部读入,再逆向求连通块个数——增加点 ...
- Application 应用对象
在整个服务器运行过程中,application对象只有一个 下面的例子是访问次数的统计 <%@ page language="java" contentType=" ...
- 使用纯生js操作cookie
前段时间做项目的时候要使用js操作cookie,jquery也有相应的插件,不过还是觉得纯生的js比较好,毕竟不依赖jq. //获得coolie 的值 function cookie(name) { ...
- android 更新listview 其中一行的数据显示
private void updateView(int index){ View v = yourListView.getChildAt(index - yourListView.getFirstVi ...
- 一张图测试你的Hadoop能力-Hadoop能力测试图谱
1.引言 看到一张图,关于Hadoop技术框架的图,基本上涉及到Hadoop当前应用的主要领域,感觉可以作为测试Hadoop开发人员当前能力和水平的比较好的一个工具,特此分享给大家.如果你能够明白说出 ...
- [.net]webform 版本冲突
ASP.NET Web Pages版本问题 调试后浏览器提示: 检测到 ASP.NET Web Pages 的冲突版本: 指定的版本为“1.0.0.0”,而 bin 中的版本为“2.0.0.0”.要继 ...
- shell 2变量
shell变量 定义变量 变量名命名规则: 1.命名只能使用英文字母.数字和下划线,首个字符不能以数字开头 2.中间不能有空格,可以使用下划线 3.不能使用标点符号 4.不能使用sh中的关键字,可用h ...
- RF安装
参考: http://www.cnblogs.com/zlj1992/p/6357373.html https://github.com/robotframework/RIDE/wiki/Instal ...
- python 网页抓取并保存图片
#-*-coding:utf-8-*- import os import uuid import urllib2 import cookielib '''获取文件后缀名''' def get_file ...