android 查看文件夹大小 删除文件,android java file 清理垃圾获取文件大小 删除文件等操作...

android java file 清理垃圾获取文件大小 删除文件等操作

发布时间:2020-05-29 08:12:11

来源:51CTO

阅读:267

作者:龙神号贵

这么久没有写博客了,今天给大家分享一些多file文件的操作。一般可以用到清理垃圾获取文件大小 删除文件等操作,可以直接用于工具类里面,直接做操作便可以

public final class FileUtils {

public static long fileLen = 0;

public static void delFilesFromPath(File filePath) {

if (filePath == null){

return;

}

if (!filePath.exists()){

return;

}

File[] files = filePath.listFiles();

for (int i = 0; i < files.length; i++) {

if (files[i].isFile()) {

files[i].delete();

} else {

delFilesFromPath(files[i]);

files[i].delete();// 刪除文件夾

}

}

}

//获取文件的大小

public static String size(File filePath) {

if (filePath == null){

return "0字节";

}

if (!filePath.exists()){

return "0字节";

}

long fileLen2 = getFileLen(filePath);

String size = size(fileLen2);

return size;

}

public static long getFileLen(File filePath) {

fileLen = 0;

return getFileLenFromPath(filePath);

}

public static long getFileLenFromPath(File filePath) {

File[] files = filePath.listFiles();

for (int i = 0; i < files.length; i++) {

if (files[i].isFile()) {

fileLen += files[i].length();

} else {

getFileLenFromPath(files[i]);

}

}

return fileLen;

}

private FileUtils() {

}

public static String size(long size) {

if (size / (1024 * 1024 * 1024) > 0) {

float tmpSize = (float) (size) / (float) (1024 * 1024 * 1024);

DecimalFormat df = new DecimalFormat("#.##");

return "" + df.format(tmpSize) + "GB";

} else if (size / (1024 * 1024) > 0) {

float tmpSize = (float) (size) / (float) (1024 * 1024);

DecimalFormat df = new DecimalFormat("#.##");

return "" + df.format(tmpSize) + "MB";

} else if (size / 1024 > 0) {

return "" + (size / (1024)) + "KB";

} else

return "" + size + "B";

}

Android系统中保存文件,可以采用多种方式,具体取决于你想要保存文件的位置和用途。以下是几种常见的文件保存方式: 1. **内部存储(Internal Storage)**: 这是默认方式,保存在设备的内部存储空间中,对于其他应用是不可见的。可以使用`Context`的`openFileOutput`方法来创建和写入文件,它会返回一个`FileOutputStream`对象。例如: ```java FileOutputStream fos = openFileOutput("filename.txt", Context.MODE_PRIVATE); ``` 这样创建的文件只能被你的应用访问。 2. **外部存储(External Storage)**: 保存在设备的外部存储(如SD卡)上,这样保存的文件其他应用也可能访问。可以使用`Environment.getExternalStorageDirectory()`获取外部存储的根目录,并结合`FileOutputStream`保存文件。例如: ```java File externalFile = new File(Environment.getExternalStorageDirectory(), "filename.txt"); FileOutputStream fos = new FileOutputStream(externalFile); ``` 注意,从Android 6.0(API级别23)开始,需要在运行时请求存储权限。 3. **共享文件夹(Shared Folders)**: 可以将文件保存到外部存储的共享文件夹中,例如`DCIM/Camera`文件夹。这需要获取到共享文件夹的路径,并使用`FileOutputStream`进行操作。 4. **数据库或SharedPreferences**: 对于小型数据,可以使用SQLite数据库或者SharedPreferences进行存储。这些方法主要用于存储结构化数据或轻量级的数据项。 5. **应用的内部缓存目录**: 可以将文件保存在应用的缓存目录中,这些文件在系统需要回收空间时可能会被删除。使用`Context`的`openFileOutput`方法并设置`MODE_APPEND`来添加到现有文件末尾或`MODE_WORLD_READABLE`(已弃用)来实现可访问性。 6. **应用的外部缓存目录**: 类似于内部缓存目录,但可以被系统更自由地清理。可以使用`Context`的`getExternalCacheDir()`方法来获取目录路径。 选择合适的存储方式时,应考虑到文件的安全性、应用的需求、用户的隐私等因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值