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; /** * 文件的相關(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)); } /** * 文件復制 * * @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 { //從文件流中創(chuàng)建管道 FileInputStream fis = new FileInputStream(oldFile); FileChannel creatChannel = fis.getChannel(); //在文件輸出目標創(chuàng)建管道 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”的數(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; } }
以上所述就是本文的全部內(nèi)容了,希望能夠?qū)Υ蠹覍W習java有所幫助。
相關(guān)文章
springboot攔截器無法注入redisTemplate的解決方法
在工作中我們經(jīng)常需要做登錄攔截驗證或者其他攔截認證功能,但是在寫攔截器的時候發(fā)現(xiàn)redisTemplate一直無法注入進來,本文就詳細的介紹了解決方法,感興趣的可以了解一下2021-06-06解析Arthas協(xié)助排查線上skywalking不可用問題
這篇文章主要為大家介紹了解析Arthas協(xié)助排查線上skywalking不可用的問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-02-02springboot中Getmapping獲取參數(shù)的實現(xiàn)方式
這篇文章主要介紹了springboot中Getmapping獲取參數(shù)的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05spring-boot使用Admin監(jiān)控應用的方法
本篇文章主要介紹了spring-boot使用Admin監(jiān)控應用的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09springBoot前后端分離項目中shiro的302跳轉(zhuǎn)問題
這篇文章主要介紹了springBoot前后端分離項目中shiro的302跳轉(zhuǎn)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12IDEA?2022最新激活碼注冊碼超詳細教程(親測激活有效)
這篇文章主要介紹了IDEA?2022最新激活碼超詳細教程(親測激活至2099年),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12