File类
File类是java中的文件操作工具类,它的常用方法如下:
File构造函数 : 根据文件路径构造File对象
delete : 删除文件
exists : 判断文件是否存在
getName : 获取文件的文件名
getPath : 获取文件的目录路径
getParent : 获取上级目录路径
isDirectory : 判断是否为目录/文件夹
isFile : 判断是否为文件
length : 获取该文件的大小
list : 列出该目录下的所有文件(夹),返回String数组
listFiles : 列出该目录下的所有文件(夹),返回File数组
mkdirs : 创建目录/文件夹
renameTo : 重命名文件,其实就是移动文件到指定目录
获取文件大小有两种方式,一种是使用File类的length方法,另一种是使用FileInputStream类的available方法。下面是两种方式的示例代码:
1、length方式
File file = new File(file_path);
long size_length = 0;
if (file.exists() == true) {
size_length = file.length();
}
2、available方式
File file = new File(file_path);
long size_available = 0;
if (file.exists() == true) {
try {
FileInputStream fis = new FileInputStream(file);
size_available = fis.available();
} catch (Exception e) {
e.printStackTrace();
}
}
Environment类
Environment类是Android中获取各种目录信息的工具,主要方法如下:
getDataDirectory : 获得系统data目录的路径
getDownloadCacheDirectory : 获得下载缓存目录的路径
getExternalStorageState : 获得外部存储的状态
MEDIA_UNKNOWN : 未知
MEDIA_REMOVED : 已经移除
MEDIA_UNMOUNTED : 未挂载
MEDIA_CHECKING : 正在检查
MEDIA_NOFS : 不支持的文件系统
MEDIA_MOUNTED : 已经挂载,且是可读写状态
MEDIA_MOUNTED_READ_ONLY : 已经挂载,且是只读状态
MEDIA_SHARED : 当前未挂载,但通过USB共享
MEDIA_BAD_REMOVAL : 未挂载就被移除
MEDIA_UNMOUNTABLE : 无法挂载
getExternalStorageDirectory : 获得外部存储(即SD卡)的路径
getExternalStoragePublicDirectory : 获得外部存储指定类型目录的路径
DIRECTORY_DCIM : 相片存放目录(包括相机拍摄的图片和视频)
DIRECTORY_DOCUMENTS : 文档存放目录
DIRECTORY_DOWNLOADS : 下载文件存放的目录
DIRECTORY_MOVIES : 视频存放目录
DIRECTORY_PICTURES : 图片存放目录
DIRECTORY_MUSIC : 音乐存放目录
getRootDirectory : 获得系统根目录的路径
getStorageState : 获得指定目录的状态
isExternalStorageEmulated : 判断外部存储是否有效
isExternalStorageRemovable : 判断外部存储是否可以移除,该方法用于判断SD卡是系统自带的还是外部插入的,如是外部插入的该方法就返回true。但现在很多手机既支持自带SD卡,也支持外插SD卡,所以该方法不能用来鉴别系统有没有外插SD卡。
SD卡操作
app操作SD卡时需增加如下处理:
1、在AndroidManifest.xml中增加SD卡的权限配置
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAG" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
2、代码中操作SD卡需要先判断当前SD卡是否已挂载。
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)==true) {
//下面补充SD卡的文件操作
}
点此查看Android开发笔记的完整目录