Android 关于文件及文件夹的创建 、删除、重命名、复制拷贝

package com.example.administrator.myapplication.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.RandomAccessFile;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

/**
* Created by Administrator on 2019/5/17 0017.
*/

public class FileUtils {

private static final String TAG = "FileUtils";

/**
* 创建文件
*
* @param filePath 文件地址
* @param fileName 文件名
* @return
*/
public static boolean createFile(String filePath, String fileName) {

String strFilePath = filePath + fileName;

File file = new File(filePath);
if (!file.exists()) {
/** 注意这里是 mkdirs()方法 可以创建多个文件夹 */
file.mkdirs();
}

File subfile = new File(strFilePath);

if (!subfile.exists()) {
try {
boolean b = subfile.createNewFile();
return b;
} catch (IOException e) {
e.printStackTrace();
}
} else {
return true;
}
return false;
}

/**
* 遍历文件夹下的文件
*
* @param file 地址
*/
public static List<File> getFile(File file) {
List<File> list = new ArrayList<>();
File[] fileArray = file.listFiles();
if (fileArray == null) {
return null;
} else {
for (File f : fileArray) {
if (f.isFile()) {
list.add(0, f);
} else {
getFile(f);
}
}
}
return list;
}

/**
* 删除文件
*
* @param filePath 文件地址
* @return
*/
public static boolean deleteFiles(String filePath) {
List<File> files = getFile(new File(filePath));
if (files.size() != 0) {
for (int i = 0; i < files.size(); i++) {
File file = files.get(i);

/** 如果是文件则删除 如果都删除可不必判断 */
if (file.isFile()) {
file.delete();
}

}
}
return true;
}

/**
* 向文件中添加内容
*
* @param strcontent 内容
* @param filePath 地址
* @param fileName 文件名
*/
public static void writeToFile(String strcontent, String filePath, String fileName) {
//生成文件夹之后,再生成文件,不然会出错
String strFilePath = filePath + fileName;
// 每次写入时,都换行写

File subfile = new File(strFilePath);

RandomAccessFile raf = null;
try {
/** 构造函数 第二个是读写方式 */
raf = new RandomAccessFile(subfile, "rw");
/** 将记录指针移动到该文件的最后 */
raf.seek(subfile.length());
/** 向文件末尾追加内容 */
raf.write(strcontent.getBytes());

raf.close();
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 修改文件内容(覆盖或者添加)
*
* @param path 文件地址
* @param content 覆盖内容
* @param append 指定了写入的方式,是覆盖写还是追加写(true=追加)(false=覆盖)
*/
public static void modifyFile(String path, String content, boolean append) {
try {
FileWriter fileWriter = new FileWriter(path, append);
BufferedWriter writer = new BufferedWriter(fileWriter);
writer.append(content);
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 读取文件内容
*
* @param filePath 地址
* @param filename 名称
* @return 返回内容
*/
public static String getString(String filePath, String filename) {
FileInputStream inputStream = null;
try {
inputStream = new FileInputStream(new File(filePath + filename));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
InputStreamReader inputStreamReader = null;
try {
inputStreamReader = new InputStreamReader(inputStream, "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
BufferedReader reader = new BufferedReader(inputStreamReader);
StringBuffer sb = new StringBuffer("");
String line;
try {
while ((line = reader.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}

/**
* 重命名文件
*
* @param oldPath 原来的文件地址
* @param newPath 新的文件地址
*/
public static void renameFile(String oldPath, String newPath) {
File oleFile = new File(oldPath);
File newFile = new File(newPath);
//执行重命名
oleFile.renameTo(newFile);
}

/**
* 复制文件
*
* @param fromFile 要复制的文件目录
* @param toFile 要粘贴的文件目录
* @return 是否复制成功
*/
public static boolean copy(String fromFile, String toFile) {
//要复制的文件目录
File[] currentFiles;
File root = new File(fromFile);
//如同判断SD卡是否存在或者文件是否存在
//如果不存在则 return出去
if (!root.exists()) {
return false;
}
//如果存在则获取当前目录下的全部文件 填充数组
currentFiles = root.listFiles();

//目标目录
File targetDir = new File(toFile);
//创建目录
if (!targetDir.exists()) {
targetDir.mkdirs();
}
//遍历要复制该目录下的全部文件
for (int i = 0; i < currentFiles.length; i++) {
if (currentFiles[i].isDirectory())//如果当前项为子目录 进行递归
{
copy(currentFiles[i].getPath() + "/", toFile + currentFiles[i].getName() + "/");

} else//如果当前项为文件则进行文件拷贝
{
CopySdcardFile(currentFiles[i].getPath(), toFile + currentFiles[i].getName());
}
}
return true;
}

//文件拷贝
//要复制的目录下的所有非子目录(文件夹)文件拷贝
public static boolean CopySdcardFile(String fromFile, String toFile) {

try {
InputStream fosfrom = new FileInputStream(fromFile);
OutputStream fosto = new FileOutputStream(toFile);
byte bt[] = new byte[1024];
int c;
while ((c = fosfrom.read(bt)) > 0) {
fosto.write(bt, 0, c);
}
fosfrom.close();
fosto.close();
return true;

} catch (Exception ex) {
return false;
}
}

}

---------------------

原文地址:https://www.cnblogs.com/hyhy904/p/10995896.html

时间: 2024-08-08 21:48:12

Android 关于文件及文件夹的创建 、删除、重命名、复制拷贝的相关文章

Java文件/文件夹 创建-删除-重命名

文件.文件夹: 创建-删除-重命名 import java.io.File; import java.io.IOException; public class Test2 { //创建文件 [如果目录不存在则创建失败!] public static void createFile() throws IOException { String folderPath="F:\\temp"; String fileName="Test.java"; //创建文件夹路径对象

( 转)Ubuntu下创建、重命名、删除文件及文件夹,强制清空回收站方法

Ubuntu下创建.重命名.删除文件及文件夹,强制清空回收站方法 mkdir 目录名 ——创建一个目录 rmdir 空目录名 ——删除一个空目录 rm 文件名 文件名 ——删除一个文件或多个文件 rm -rf 非空目录名 ——删除一个非空目录下的一切 touch 文件名 ——创建一个空文件 重命名文件(夹) / 移动文件(夹)到指定文件夹echWeb-技术社区5].O"?8H.I执行格式: mv source destination 举例: mv file1 file2 表示将文件 file1,

Linux_文件及文件夹[创建][复制][移动][删除][重命名]

一.文件/文件夹创建 1.文件的创建 touch , vi/vim/nano , ... 语   法: touch [-acfm][-d <日期时间>][-r <参考文件或目 录>][-t <日期时间>] [--help] [--version][文件或目录...] 或 touch [-acfm][--help][--version][日期时 间][文件或目录...] 补充说明:使用touch指令可更改文件或目录的日期时间,包括存取时间和更改时间. 参 数:  -a或–

Java创建、重命名、删除文件和文件夹(转)

Java的文件操作太基础,缺乏很多实用工具,比如对目录的操作,支持就非常的差了.如果你经常用Java操作文件或文件夹,你会觉得反复编写这些代码是令人沮丧的问题,而且要大量用到递归. 下面是的一个解决方案,借助Apache Commons IO工具包(commons-io-1.1.jar)来简单实现文件(夹)的复制.移动.删除.获取大小等操作. import org.apache.commons.io.FileUtils; import org.apache.commons.io.filefilt

Linux文件(夹)移动、重命名操作命令

mv命令是move的缩写,可以用来移动文件或者将文件改名,是Linux系统下常用的命令,经常用来备份文件或者目录.1.命令格式:mv [选项] 源文件或目录 目标文件或目录2.命令功能:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中.当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名.当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv

Vbs程序备份指定文件到指定目录并且以日期重命名

说到备份,相信大家都会想到的第一个方法就是通过windows系统自带的window backup功能进行数据备份.后来微软又出了system centere产品后,就出现了一个新的备份产品---system centere data backup manager(DPM).这些功能备份比较大的数据还可以,但是对于小文件的备份有点浪费了,因为有的时候由于工作需要备份几个重要的文件(配置文件),不需要全备,所以说呢,很多备份软件有点浪费,对于小文件的备份来说不是非常方便.以上仅仅是个人的想法.我算是

Java IO 之 File 的创建、重命名与遍历

File表示存储设备上的一个文件或目录,使用方式查看API即可,比较简单 1 package org.zln.io.file; 2 3 import java.io.File; 4 5 /** 6 * Created by coolkid on 2015/6/21 0021. 7 */ 8 public class TestFile { 9 /*当前程序根路径*/ 10 public static final String rootPath = System.getProperty("user.

Android得到SD卡文件夹大小以及删除文件夹操作

float cacheSize = dirSize(new File(Environment.getExternalStorageDirectory() + AppConstants.APP_CACHE_FOLDER)) / 1024.0f / 1024.0f; tvCacheSize.setText(((int) (cacheSize * 100)) / 100.0f + "M"); /** * Return the size of a directory in bytes */ p

iOS文件和文件夹的创建,删除,移动, 拷贝,是否存在及简单数据类型的读写

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // 沙盒(SandBox) // Documents(文件文档, 用户主动数据存储) // Libray(资源, 一般用来存放, 程序员要存储的一些数据

按创建时间重命名文件

@echo offset suffix=modset prefix=modset source=%cd%set /p source=源文件路径[%source%]:set destination=D:\Outputset /p destination=目标路径[D:\Output]xcopy "%source%\*.*" "%destination%" /A /Yfor /f "delims=" %%a in ('dir %destination