1、讲述 Environment 类
Environment 是一个提供访问环境变量的类。
Environment 包含常量:
MEDIA_BAD_REMOVAL
解释:返回getExternalStorageState() ,表明SDCard 被卸载前己被移除
MEDIA_CHECKING
解释:返回getExternalStorageState() ,表明对象正在磁盘检查。
MEDIA_MOUNTED
解释:返回getExternalStorageState() ,表明对象是否存在并具有读/写权限
MEDIA_MOUNTED_READ_ONLY
解释:返回getExternalStorageState() ,表明对象权限为只读
MEDIA_NOFS
解释:返回getExternalStorageState() ,表明对象为空白或正在使用不受支持的文件系统。
MEDIA_REMOVED
解释:返回getExternalStorageState() ,如果不存在 SDCard 返回
MEDIA_SHARED
解释:返回getExternalStorageState() ,如果 SDCard 未安装 ,并通过 USB 大容量存储共享 返回
MEDIA_UNMOUNTABLE
解释:返回getExternalStorageState() ,返回 SDCard 不可被安装 如果 SDCard 是存在但不可以被安装
MEDIA_UNMOUNTED
解释:返回getExternalStorageState() ,返回 SDCard 已卸掉如果 SDCard 是存在但是没有被安装
Environment 常用方法:
方法:getDataDirectory()
解释:返回 File ,获取 Android 数据目录。
方法:getDownloadCacheDirectory()
解释:返回 File ,获取 Android 下载/缓存内容目录。
方法:getExternalStorageDirectory()
解释:返回 File ,获取外部存储目录即 SDCard
方法:getExternalStoragePublicDirectory(String type)
解释:返回 File ,取一个高端的公用的外部存储器目录来摆放某些类型的文件
方法:getExternalStorageState()
解释:返回 File ,获取外部存储设备的当前状态
方法:getRootDirectory()
解释:返回 File ,获取 Android 的根目录
2、讲述 StatFs 类
StatFs 一个模拟linux的df命令的一个类,获得SD卡和手机内存的使用情况
StatFs 常用方法:
getAvailableBlocks()
解释:返回 Int ,获取当前可用的存储空间
getBlockCount()
解释:返回 Int ,获取该区域可用的文件系统数
getBlockSize()
解释:返回 Int ,大小,以字节为单位,一个文件系统
getFreeBlocks()
解释:返回 Int ,该块区域剩余的空间
restat(String path)
解释:执行一个由该对象所引用的文件系统
Constants
Fields
Public Methods
public static File getExternalStoragePublicDirectory (String type)
Get a top-level public external storage directory for placing files of a particular type. This is where the user will typically place and manage their own files, so you should be careful about what you put here to ensure you don't erase their files or get in the way of their own organization.
Here is an example of typical code to manipulate a picture on the public external storage:
- void createExternalStoragePublicPicture() {
-
-
-
-
-
- File path = Environment.getExternalStoragePublicDirectory(
- Environment.DIRECTORY_PICTURES);
- File file = new File(path, "DemoPicture.jpg");
-
- try {
-
- path.mkdirs();
-
-
-
-
-
-
- InputStream is = getResources().openRawResource(R.drawable.balloons);
- OutputStream os = new FileOutputStream(file);
- byte[] data = new byte[is.available()];
- is.read(data);
- os.write(data);
- is.close();
- os.close();
-
-
-
- MediaScannerConnection.scanFile(this,
- new String[] { file.toString() }, null,
- new MediaScannerConnection.OnScanCompletedListener() {
- public void onScanCompleted(String path, Uri uri) {
- Log.i("ExternalStorage", "Scanned " + path + ":");
- Log.i("ExternalStorage", "-> uri=" + uri);
- }
- });
- } catch (IOException e) {
-
-
- Log.w("ExternalStorage", "Error writing " + file, e);
- }
- }
-
- void deleteExternalStoragePublicPicture() {
-
-
-
- File path = Environment.getExternalStoragePublicDirectory(
- Environment.DIRECTORY_PICTURES);
- File file = new File(path, "DemoPicture.jpg");
- file.delete();
- }
-
- boolean hasExternalStoragePublicPicture() {
-
-
-
-
- File path = Environment.getExternalStoragePublicDirectory(
- Environment.DIRECTORY_PICTURES);
- File file = new File(path, "DemoPicture.jpg");
- return file.exists();
- }
Returns
- Returns the File path for the directory. Note that this directory may not yet exist, so you must make sure it exists before using it such as with
File.mkdirs()
.