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有所帮助。
0
投稿
猜你喜欢
- 线程状态NEW:刚创建未启动的线程RUNNABLE:正在执行状态BLOCKED:处于阻塞状态的线程WAITING:正在等待另一个线程执行特定
- Android权限一般是在AndroidManifest.xml中声明,在安装或首次使用的时候系统会自动提示用户是否提供权限Android官
- 前言在一些项目中,经常会遇到需要把当前线程中的上下文传递到其他线程中的情况,比如某项目包含国际化操作,在业务请求进来时需要把对应的国家代码存
- 需求基于MTK8163 8.1平台定制导航栏部分,在左边增加音量减,右边增加音量加思路需求开始做之前,一定要研读SystemUI Navig
- 前言在电商的应用中,最常见的就是在首页或完成某事件之后,弹出一堆的活动/广告。假如重叠弹出,很丑,给用户的体验也不好,所以一般都会依次依条件
- 本文实例讲述了C#创建临时文件的方法。分享给大家供大家参考。具体分析如下:C#可以通过Path.GetTempFileName获得一个临时文
- 一、什么是iText?在企业的信息系统中,报表处理一直占比较重要的作用,iText是一种生成PDF报表的Java组件。通过在服务器端使用Js
- [LeetCode] 131.Palindrome Partitioning 拆分回文串Given a string s, par
- HashMap的get()方法的NullPointerException今天写代码发现一个 bug,HashMap的 get() 方法一直报
- 最近碰到这么个恶心的问题问题:有个arr文件被放到Module A中引用,现在Module B又依赖了Module A,则在编译过程中会发生
- 写在前面关于数据结构,Java官方其实已经帮我们写好并封装起来了,在真正需要使用的时候直接调用即可,但为了更好的理解数据结构,我会按照源码的
- 本文实例讲述了Android编程实现WebView添加进度条的方法。分享给大家供大家参考,具体如下:标准的XML界面<?xml ver
- 第一节 JAVA条件语句之if语句1.单独的if语句,语法:if(条件){条件成立时执行的代码};如果if成立时执行的语句只有一条,可以省略
- 前两天发现 idea 终于更新了2020.1版本,新增了好多的特性,这里不介绍,主要写一下中文插件的安装首先下载新版 安装包 https:/
- 1.短信平台购买次数地址https://market.aliyun.com/products/57000002/cmapi00046920.
- 记录一下微信第三方实现登录的方法。还是比较简单。一、必要的准备工作1.首先需要注册并被审核通过的微信开放平台帐号,然后创建一个移动应用,也需
- 项目中肯定会遇到异步调用其他方法的场景,比如有个计算过程,需要计算很多个指标的值,但是每个指标计算的效率快慢不同,如果采用同步执行的方式,运
- 大致分为以下几个方面:一些查询指令整理使用SQL语句进行特殊查询检测表字段是否存在数据库升级数据库表字段赋初始值一、查询指令整理1.链式执行
- 一般而言,Android 应用在请求数据时都是以 Get 或 Post 等方式向远程服务器发起请求,那你有没有想过其实我们也可以在 Andr
- 一:问题描述 在已经root过的android设备下,app执行一个linux命令,app需要获取su权限,在某些a