Android的SD卡文件读写的帮助类——FileHelper,以及查询SD卡是否存在及其容量的方法
2013-03-21 16:29
821 查看
FileHelper.java是文件的帮助类,完成文件创建、删除、读。
在开始之前别忘了加权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Environment 常用方法:
* 方法:getDataDirectory()
解释:返回 File ,获取 Android 数据目录。
* 方法:getDownloadCacheDirectory()
解释:返回 File ,获取 Android 下载/缓存内容目录。
* 方法:getExternalStorageDirectory()
解释:返回 File ,获取外部存储目录即 SDCard
* 方法:getExternalStoragePublicDirectory(String type)
解释:返回 File ,取一个高端的公用的外部存储器目录来摆放某些类型的文件
* 方法:getExternalStorageState()
解释:返回 File ,获取外部存储设备的当前状态
* 方法:getRootDirectory()
解释:返回 File ,获取 Android 的根目录
首先要在AndroidManifest.xml中增加SD卡访问权限
在开始之前别忘了加权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
public class FileHelper { private Context context; /** SD卡是否存在**/ private boolean hasSD = false; /** SD卡的路径**/ private String SDPATH; /** 当前程序包的路径**/ private String FILESPATH; public FileHelper(Context context) { this.context = context; hasSD = Environment.getExternalStorageState().equals( android.os.Environment.MEDIA_MOUNTED); SDPATH = Environment.getExternalStorageDirectory().getPath(); FILESPATH = this.context.getFilesDir().getPath(); } /** * 在SD卡上创建文件 * * @throws IOException */ public File createSDFile(String fileName) throws IOException { File file = new File(SDPATH + "//" + fileName); if (!file.exists()) { file.createNewFile(); } return file; } /** * 删除SD卡上的文件 * * @param fileName */ public boolean deleteSDFile(String fileName) { File file = new File(SDPATH + "//" + fileName); if (file == null || !file.exists() || file.isDirectory()) return false; return file.delete(); } /** * 读取SD卡中文本文件 * * @param fileName * @return */ public String readSDFile(String fileName) { StringBuffer sb = new StringBuffer(); File file = new File(SDPATH + "//" + fileName); try { FileInputStream fis = new FileInputStream(file); int c; while ((c = fis.read()) != -1) { sb.append((char) c); } fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return sb.toString(); } public String getFILESPATH() { return FILESPATH; } public String getSDPATH() { return SDPATH; } public boolean hasSD() { return hasSD; } }
Environment 常用方法:
* 方法:getDataDirectory()
解释:返回 File ,获取 Android 数据目录。
* 方法:getDownloadCacheDirectory()
解释:返回 File ,获取 Android 下载/缓存内容目录。
* 方法:getExternalStorageDirectory()
解释:返回 File ,获取外部存储目录即 SDCard
* 方法:getExternalStoragePublicDirectory(String type)
解释:返回 File ,取一个高端的公用的外部存储器目录来摆放某些类型的文件
* 方法:getExternalStorageState()
解释:返回 File ,获取外部存储设备的当前状态
* 方法:getRootDirectory()
解释:返回 File ,获取 Android 的根目录
public void getSDPath(){ File sdDir = null; File sdDir1 = null; File sdDir2 = null; boolean sdCardExist = Environment.getExternalStorageState() .equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡是否存在 if (sdCardExist) { sdDir = Environment.getExternalStorageDirectory();//获取跟目录 sdDir1 = Environment.getDataDirectory(); sdDir2 =Environment.getRootDirectory(); } System.out.println("getExternalStorageDirectory(): "+sdDir.toString()); System.out.println("getDataDirectory(): "+sdDir1.toString()); System.out.println("getRootDirectory(): "+sdDir2.toString()); }
//判断一个路径下的文件(文件夹)是否存在 public class IsExist { public static void main(String[] args) { isExist("e://12"); } /** * * @param path 文件夹路径 */ public static void isExist(String path) { File file = new File(path); //判断文件夹是否存在,如果不存在则创建文件夹 if (!file.exists()) { file.mkdir(); } } } //1.在SD卡上创建一个文件夹 public class make extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); File sd=Environment.getExternalStorageDirectory(); String path=sd.getPath()+"/notes"; File file=new File(path); if(!file.exists()) file.mkdir(); }Android 判断SD卡是否存在及容量查询的简单方法如下:
首先要在AndroidManifest.xml中增加SD卡访问权限
<!-- 在SDCard中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 往SDCard写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>SD卡剩余空间
public long getSDFreeSize(){ //取得SD卡文件路径 File path = Environment.getExternalStorageDirectory(); StatFs sf = new StatFs(path.getPath()); //获取单个数据块的大小(Byte) long blockSize = sf.getBlockSize(); //空闲的数据块的数量 long freeBlocks = sf.getAvailableBlocks(); //返回SD卡空闲大小 //return freeBlocks * blockSize; //单位Byte //return (freeBlocks * blockSize)/1024; //单位KB return (freeBlocks * blockSize)/1024 /1024; //单位MB }SD卡总容量
public long getSDAllSize(){ //取得SD卡文件路径 File path = Environment.getExternalStorageDirectory(); StatFs sf = new StatFs(path.getPath()); //获取单个数据块的大小(Byte) long blockSize = sf.getBlockSize(); //获取所有数据块数 long allBlocks = sf.getBlockCount(); //返回SD卡大小 //return allBlocks * blockSize; //单位Byte //return (allBlocks * blockSize)/1024; //单位KB return (allBlocks * blockSize)/1024/1024; //单位MB }
相关文章推荐
- Android开发 判断SD卡是否存在及容量的相关查询方法
- Android 判断SD卡是否存在及容量查询
- Android 判断SD卡是否存在及容量查询
- Android 判断SD卡是否存在及容量查询
- Android 判断SD卡是否存在及容量查询
- Android 判断SD卡是否存在及容量查询
- Android 判断SD卡是否存在及容量查询
- Android 判断SD卡是否存在及容量查询
- Android 判断SD卡是否存在及容量查询
- Android 判断SD卡是否存在及容量查询
- Android 判断SD卡是否存在及容量查询
- Android 判断SD卡是否存在及容量查询
- Android 推断SD卡是否存在及容量查询
- Android 判断SD卡是否存在及容量查询
- [Android] Android 判断SD卡是否存在及容量查询
- Android 推断SD卡是否存在及容量查询
- Android 判断SD卡是否存在及容量查询
- Android 判断SD卡是否存在及容量查询
- Android 判断SD卡是否存在及容量查询 分类: Android数据存储 2014-06-20 13:32 66人阅读 评论(0) 收藏
- Android 判断SD卡是否存在及容量查询