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类是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卡。
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卡的文件操作
}