java編寫的文件管理器代碼分享
比較適合新手。邏輯上仍然有點(diǎn)問題??梢杂糜趯W(xué)習(xí)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;
/**
* 文件的相關(guān)幫助類
*/
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 文件創(chuàng)建成功
* 返回false 文件創(chuàng)建失敗 ->文件存在
* 返回true 文件創(chuàng)建成功,返回false 文件創(chuàng)建失敗 (文件存在、權(quán)限不夠)
*/
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;
}
}
/**
* 創(chuàng)建自定義文件類型文件
* 隨意為文件夾
* 0 txt文本
*
* @return boolean
* 返回true 文件創(chuàng)建成功,返回false 文件創(chuàng)建失敗 (文件存在、權(quán)限不夠)
* *
*/
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 新創(chuàng)建的文件名
* @param file 創(chuàng)建文件的地方
*/
public static boolean reName(String name, File file) {
String pathStr = file.getParent() + File.separator + name;
return file.renameTo(new File(pathStr));
}
/**
* 文件復(fù)制
*
* @param oldFile 要被復(fù)制的文件
* @param toNewPath 復(fù)制到的地方
* @return boolean trun 復(fù)制成功,false 復(fù)制失敗
* *
*/
public static boolean copeyFile(File oldFile, String toNewPath) {
String newfilepath = toNewPath + File.separator + oldFile.getName();
File temp = new File(newfilepath);
//判斷復(fù)制到的文件路徑是否存在相對(duì)文件,如果存在,停止該操作
if (temp.exists()) {
return false;
}
//判斷復(fù)制的文件類型是否是文件夾
if (oldFile.isDirectory()) {
temp.mkdir();
for (File i : oldFile.listFiles()) {
copeyFile(i, temp.getPath());
}
} else {
//如果是文件,則進(jìn)行管道復(fù)制
try {
//從文件流中創(chuàng)建管道
FileInputStream fis = new FileInputStream(oldFile);
FileChannel creatChannel = fis.getChannel();
//在文件輸出目標(biāo)創(chuàng)建管道
FileOutputStream fos = new FileOutputStream(newfilepath);
FileChannel getChannel = fos.getChannel();
//進(jìn)行文件復(fù)制(管道對(duì)接)
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;
}
}
/**
* 獲取對(duì)應(yīng)文件類型的問件集
*
* @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 需要驗(yàn)證的文件
* @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;
}
}
/**
* 獲取文件最后操作時(shí)間類
*
* @param file 需要查詢的文件類
* @return “yy/MM/dd HH:mm:ss”的數(shù)據(jù)字符串
* 如:
* 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;
}
}
以上所述就是本文的全部?jī)?nèi)容了,希望能夠?qū)Υ蠹覍W(xué)習(xí)java有所幫助。
相關(guān)文章
springboot攔截器無法注入redisTemplate的解決方法
在工作中我們經(jīng)常需要做登錄攔截驗(yàn)證或者其他攔截認(rèn)證功能,但是在寫攔截器的時(shí)候發(fā)現(xiàn)redisTemplate一直無法注入進(jìn)來,本文就詳細(xì)的介紹了解決方法,感興趣的可以了解一下2021-06-06
解析Arthas協(xié)助排查線上skywalking不可用問題
這篇文章主要為大家介紹了解析Arthas協(xié)助排查線上skywalking不可用的問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-02-02
springboot中Getmapping獲取參數(shù)的實(shí)現(xiàn)方式
這篇文章主要介紹了springboot中Getmapping獲取參數(shù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
spring-boot使用Admin監(jiān)控應(yīng)用的方法
本篇文章主要介紹了spring-boot使用Admin監(jiān)控應(yīng)用的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09
springBoot前后端分離項(xiàng)目中shiro的302跳轉(zhuǎn)問題
這篇文章主要介紹了springBoot前后端分離項(xiàng)目中shiro的302跳轉(zhuǎn)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
IDEA?2022最新激活碼注冊(cè)碼超詳細(xì)教程(親測(cè)激活有效)
這篇文章主要介紹了IDEA?2022最新激活碼超詳細(xì)教程(親測(cè)激活至2099年),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12

