记录一下平时经常需要运用到得文件相关内容,俗话讲好记性不如烂笔头!
1)
<strong>/**
* 根据路径获得,某个文件或文件夹所在的存储器的内存空间总大小
*
* @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;
}</strong>
/**
* 根据路径获得,某个文件或文件夹所在的存储器的内存空间还有多少可用
*
* @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”