android開發積累_1)擷取檔案、檔案夾儲存空間和Toast的人性化使用
記錄一下平時經常需要運用到得檔案相關內容,俗話講好記性不如爛筆頭!
1)
/** * 根據路徑獲得,某個檔案或檔案夾所在的儲存空間的記憶體空間總大小 * * @return */public static long getTotalMemorySize(String path) {StatFs stat = new StatFs(path);long blockSize = stat.getBlockSize(); // 每個block 占位元組數long totalBlocks = stat.getBlockCount(); // block總數return totalBlocks * blockSize;}
2)
/** * 根據路徑獲得,某個檔案或檔案夾所在的儲存空間的記憶體空間還有多少可用 * * @return */public static long getAvailableMemorySize(String path) {StatFs stat = new StatFs(path);long blockSize = stat.getBlockSize();long availableBlocks = stat.getAvailableBlocks();return availableBlocks * blockSize;}
3)
/** * 擷取指定檔案的大小 * * @param f * @return * @throws Exception */private static long getFileSize(File file) {long size = 0;if (file.exists()) {FileInputStream fis = null;try {fis = new FileInputStream(file);//使用FileInputStream讀入file的資料流size = fis.available();//檔案的大小} catch (IOException e) {e.printStackTrace();} finally{try {fis.close();} catch (IOException e) {e.printStackTrace();}}} else {Log.e(TAG, "File not exists!");}return size;}
4)
/** * 擷取指定檔案夾的大小 * * @param f * @return * @throws Exception */private static long getFileSizes(File f) {long size = 0;File flist[] = f.listFiles();//檔案夾目錄下的所有檔案for (int i = 0; i < flist.length; i++) {if (flist[i].isDirectory()) {//判斷是否父目錄下還有子目錄size = size + getFileSizes(flist[i]);} else {size = size + getFileSize(flist[i]);}}return size;}
5)使用該方法可以防止多次觸發Toast而引起多次彈出提醒框
private Toast mToast = null;private void showToast(Context context, String str) {if (mToast == null) {mToast = Toast.makeText(context, str, Toast.LENGTH_SHORT);} else {mToast.setText(str);}mToast.show();}
檔案相關操作:
1)String Name = File.getName();//獲得檔案或檔案夾的名稱:
2)File.mkDir(); //建立檔案夾
3) File.createNewFile();//建立檔案
4)File.isDirectory();//判斷是檔案或檔案夾
5)File.isDirectory()
6)File[] files = File.listFiles();//列出檔案夾下的所有檔案和檔案夾名
7)File.renameTo(dest);//修改檔案夾和檔案名稱
8)File.delete();//刪除檔案夾或檔案
9)childFiles[i].getName().contains("testfolder");//判斷某個檔案名稱包含有“testfolder”