sd卡文件操作

Environment是一个提供访问环境变量的类。

Environment.MEDIA_MOUNTED  表明对象是否存在并具有读/写权限

File.separator /  路径分隔符

Environment.getExternalStorageDirectory() 返回值为sd卡文件件,而需要拼接字符串  所以getPath()

别忘了添加读写权限

一般用于BaseApplication里面.


模板性代码

package com.example.tuhuadmin.fanxinglei.widget;

import android.content.Context;
import android.os.Bundle;
import android.os.Environment;
import android.widget.Button;
import android.widget.TextView;

import com.example.tuhuadmin.fanxinglei.BaseActivity;
import com.example.tuhuadmin.fanxinglei.R;
import com.example.tuhuadmin.fanxinglei.utils.LogUtil;
import com.example.tuhuadmin.fanxinglei.utils.ToastUtil;

import java.io.File;

/**
 * Created on 2016/8/2.
 * Author:crs
 * Description:初始化文件夹
 */
public class SdcardActivity extends BaseActivity {

    private static final String TAG = "SdcardActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sdcard);

        initCacheDir(this);
    }

    private void initCacheDir(Context context) {
        String state = Environment.getExternalStorageState();
        if (state.equals(Environment.MEDIA_MOUNTED)) {
            //进行路径的拼接
            setCacheDir(Environment.getExternalStorageDirectory().getPath() + File.separator + "XunPiGe" + File.separator);
        } else {
            //data/data/包名/cache目录
            setCacheDir(context.getCacheDir().getPath() + File.separator + "XunPiGe" + File.separator);
            ToastUtil.show(context, "SD卡不存在,检查SD卡状态");
        }
    }

    private void setCacheDir(String path) {
        //传递进来一个文件夹路径(不是文件路径)
        //创建一个文件,先判断文件是否存在,在判断是文件还是文件夹(你要创建文件还是文件夹)
        File dir = new File(path);
        if (dir.exists()) {
            if (dir.isDirectory()) {
                //满足要求
            } else {
                dir.delete();
                if (!dir.mkdir()) {
                    //此方法有两个含义:创建文件夹以及是否成功创建
                    LogUtil.e(TAG, "Failed to make directory " + path);
                }
            }
        } else {
            if (!dir.mkdir()) {
                //此方法有两个含义:创建文件夹以及是否成功创建
                LogUtil.e(TAG, "Failed to make directory " + path);
            }

        }
    }
    
}

文件操作常见api

	构造方法:
		public File(String pathname) : 通过文件路径 封装成 File对象
		public File(String parent,String child): 通过父目录(文件夹)路径, 文件或者文件夹名称, 来 封装成File对象
		public File(File parent,String child): 通过File对象 与  文件或者文件夹名称, 来 封装成File对象
		
	创建功能:
  		//创建文件
  			public boolean createNewFile(): 创建文件
  					返回值: true, 创建一个新的文件
  					返回值:  false, 当前File对象所表示的文件已经存在了, 不再创建新文件
  
  		//创建文件夹
  			public boolean mkdir() 创建文件夹
  					返回值: true, 创建一个新的文件夹
  					返回值:  false, 当前File对象所表示的文件夹已经存在了, 不再创建新文件夹
  
  			public boolean mkdirs(): 创建多层文件夹

	删除功能:
		public boolean delete(): 删除文件 或者 空文件夹
		
   		注意: java程序删除  不经过回收站
			想删除带有内容的文件夹 怎么办?
			先把文件夹中的内容全删了, 再删除文件夹

	重命名功能:
		public boolean renameTo(File dest)
			参数: dest  新名称
			
			如果两个File对象, 同一个文件夹的时候, renameTo()重命名功能
			如果两个File对象, 不是同一个文件夹的时候, renameTo()剪切 + 重命名功能
	
	判断功能:
		public boolean isDirectory(): File所代表的文件(文件夹) , 是否 为 文件夹
		public boolean isFile() : 是否为文件
		public boolean exists() : 文件是否存在
		public boolean canRead() : 是否可读
		public boolean canWrite() : 是否可写
		public boolean isHidden() : 是否为 隐藏文件

	获取功能:
		public String getAbsolutePath(): 获取绝对路径
		public String getPath() : 获取相对路径
		public String getName() : 获取文件名称
		public long length() : 获取文件的大小
		public long lastModified() : 获取文件的最后修改时间

	高级获取功能:
		public String[] list() : 指定文件夹中  所有的文件与子文件夹的名称
		public File[] listFiles() : 指定文件夹中, 所有的File对象


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值