java编写的文件管理器代码分享
作者:hebedich 发布时间:2023-11-20 13:28:52
标签:java,文件管理器
比较适合新手。逻辑上仍然有点问题。可以用于学习java文件操作
下载地址:http://yun.baidu.com/share/link?shareid=4184742416&uk=1312160419
下面是主要的JAVA文件操作代码
FileHelp.java
package self.yy.filesystem.fileutil;
import android.content.Context;
import android.util.Log;
import android.widget.Toast;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URI;
import java.nio.channels.FileChannel;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
/**
* 文件的相关帮助类
*/
public class FileHelp {
private static final String TAG = "FileHelp";
public static final String JPG = ".jpg";
public static final String PNG = ".png";
public static final String MP3 = ".mp3";
public static final String MP4 = ".mp4";
public static final String APK = ".apk";
//上下文
private static Context context;
/**
* txt文本
*/
public static int ISTXT = 0;
private static String TXT = ".txt";
/**
* 文件删除
*/
public static boolean deletfile(File file) {
if (file.isDirectory()) {
if (file.listFiles().length > 0) {
for (File i : file.listFiles()) {
deletfile(i);
}
} else {
file.delete();
}
} else {
file.delete();
}
file.delete();
return true;
}
/**
* 新建文件夹
* 返回true 文件创建成功
* 返回false 文件创建失败 ->文件存在
* 返回true 文件创建成功,返回false 文件创建失败 (文件存在、权限不够)
*/
public static boolean creatFile(String filename, String path) {
File file = new File(path + File.separator + filename);
if (file.exists()) {
return false;
} else {
file.mkdir();
return true;
}
}
/**
* 创建自定义文件类型文件
* 随意为文件夹
* 0 txt文本
*
* @return boolean
* 返回true 文件创建成功,返回false 文件创建失败 (文件存在、权限不够)
* *
*/
public static boolean creatFile(String filename, String path, int type) {
String ptr = path + File.separator + filename;
File file;
switch (type) {
case 0:
file = new File(ptr + TXT);
break;
default:
file = new File(ptr);
break;
}
if (file.exists()) {
return false;
} else {
try {
file.createNewFile();
return true;
} catch (IOException e) {
return false;
}
}
}
/**
* 文件重名
*
* @param name 新创建的文件名
* @param file 创建文件的地方
*/
public static boolean reName(String name, File file) {
String pathStr = file.getParent() + File.separator + name;
return file.renameTo(new File(pathStr));
}
/**
* 文件复制
*
* @param oldFile 要被复制的文件
* @param toNewPath 复制到的地方
* @return boolean trun 复制成功,false 复制失败
* *
*/
public static boolean copeyFile(File oldFile, String toNewPath) {
String newfilepath = toNewPath + File.separator + oldFile.getName();
File temp = new File(newfilepath);
//判断复制到的文件路径是否存在相对文件,如果存在,停止该操作
if (temp.exists()) {
return false;
}
//判断复制的文件类型是否是文件夹
if (oldFile.isDirectory()) {
temp.mkdir();
for (File i : oldFile.listFiles()) {
copeyFile(i, temp.getPath());
}
} else {
//如果是文件,则进行管道复制
try {
//从文件流中创建管道
FileInputStream fis = new FileInputStream(oldFile);
FileChannel creatChannel = fis.getChannel();
//在文件输出目标创建管道
FileOutputStream fos = new FileOutputStream(newfilepath);
FileChannel getChannel = fos.getChannel();
//进行文件复制(管道对接)
getChannel.transferFrom(creatChannel, 0, creatChannel.size());
getChannel.close();
creatChannel.close();
fos.flush();
fos.close();
fis.close();
} catch (Exception e) {
Log.i(TAG, "copey defeated,mebey file was existed");
e.printStackTrace();
return false;
}
}
return true;
}
/**
* 文件剪切
*
* @param oldFile 要被剪切的文件
* @param newFilePath 剪切到的地方
* @return boolean trun 剪切成功,false 剪切失败
*/
public static boolean cutFile(File oldFile, String newFilePath) {
if (copeyFile(oldFile, newFilePath)) {
oldFile.delete();
return true;
} else {
return false;
}
}
/**
* 获取对应文件类型的问件集
*
* @param dir 文件夹
* @param type 文件类型,格式".xxx"
* @return List<file> 文件集合
*/
public static List<File> getTheTypeFile(File dir, String type) {
List<File> files = new ArrayList<File>();
for (File i : dir.listFiles()) {
String filesTyepe = getFileType(i);
if (type.equals(filesTyepe)) {
files.add(i);
}
}
return files;
}
/**
* 获取文件类型
*
* @param file 需要验证的文件
* @return String 文件类型
* 如:
* 传入文件名为“test.txt”的文件
* 返回 .txt
* *
*/
public static String getFileType(File file) {
String fileName = file.getName();
if (fileName.contains(".")) {
String fileType = fileName.substring(fileName.lastIndexOf("."),
fileName.length());
return fileType;
} else {
return null;
}
}
/**
* 获取文件最后操作时间类
*
* @param file 需要查询的文件类
* @return “yy/MM/dd HH:mm:ss”的数据字符串
* 如:
* 14/07/01 01:02:03
*/
public static String getCreatTime(File file) {
long time = file.lastModified();
Calendar calendar = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("yy/MM/dd HH:mm:ss");
String date = dateFormat.format(calendar.getTime());
return date;
}
}
以上所述就是本文的全部内容了,希望能够对大家学习java有所帮助。


猜你喜欢
- 本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力。下面的章节分为上下两篇,
- 本文实例为大家分享了Android自定义ViewGroup多行多列的具体代码,供大家参考,具体内容如下先看下效果图每行两个子孩子每行一个子孩
- 一、项目要求实现一个通讯录通讯录可以用来存储100个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:添加联系人信息删除指定
- 目录前言:一、IronPython二、Python打包exe调用三、Python提供WebApi接口(推荐)总结:前言:在平时工作中,需求有
- 前言在机器学习中,卷积神经网络是一种深度前馈人工神经网络,已成功地应用于图像识别。目前,很多的车牌识号识别,人脸识别等都采用卷积神经网络,可
- org.slf4j.Logger中info()方法如果info()方法参数为以下类型 public void in
- Spring @Cacheable指定失效时间新版本配置@Configuration@EnableCachingpublic class R
- mybatis自动生成代码(实体类、Dao接口等)是很成熟的了,就是使用mybatis-generator插件。 它是一个开源的插件,使用m
- 1.利用参数出现的顺序利用mapper.xml<select id="MutiParameter" resultT
- 编程是一门艺术,大批量的改动显然是非常丑陋的做法,用心的琢磨写的代码让它变的更美观。在有些情况下,一个客户不能或者不想直接访问另一个对象,这
- 1、很多资料说,添加以下代码,可以隐藏地址栏,但我试了很多次,貌似不成功啊。<meta name="apple-mobile
- 前言A*搜寻算法俗称A星算法。这是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中通过二维数组构建的一个迷宫,“%”
- spring容器是负责实例化、配置、组装组件的容器。容器的配置有很多,常用的是xml、Java注解和Java代码。在spring中Ioc容器
- 什么是抽象类什么是抽象类呢?抽象类顾名思义就是很抽象,就是当我们没有足够的信息去描述这个类的时候我们就可以先不用描述,这样的类就是抽象类。用
- Prim算法介绍1.点睛在生成树的过程中,把已经在生成树中的节点看作一个集合,把剩下的节点看作另外一个集合,从连接两个集合的边中选择一条权值
- gateway版本是 2.0.11.pom结构(部分内部项目依赖已经隐藏)<dependency> &
- 字符串操作是C#中最基本的、最常见的、也是用的最多的,以下我总结了几种常见的方法:1.把字符串按照分隔符转换成 List ///
- 这里使用 Maven 项目管理工具构建项目初始化项目打开 Intellij IDEA,点击 Create New Project选择 Mav
- 前言Android 7.0系统发布后,拿到能升级的nexus 6P,就开始了7.0的适配。发现在Android 7.0以上,在相机拍照和图片
- ActiveMQ是什么ActiveMQ是消息队列技术,为解决高并发问题而生ActiveMQ生产者消费者模型(生产者和消费者可以跨平台、跨系统