SD卡操作相关的工具SDCardUtils

SD卡操作相关的工具

package com.flyou.utils;

import java.io.File;

import android.os.Environment;
import android.os.StatFs;

/**
 * SD卡相关的辅助类
 *
 *
 *
 */
public class SDCardUtils
{
	private SDCardUtils()
	{
		/* cannot be instantiated */
		throw new UnsupportedOperationException("cannot be instantiated");
	}

	/**
	 * 推断SDCard是否可用
	 *
	 * @return
	 */
	public static boolean isSDCardEnable()
	{
		return Environment.getExternalStorageState().equals(
				Environment.MEDIA_MOUNTED);

	}

	/**
	 * 获取SD卡路径
	 *
	 * @return
	 */
	public static String getSDCardPath()
	{
		return Environment.getExternalStorageDirectory().getAbsolutePath()
				+ File.separator;
	}

	/**
	 * 获取SD卡的剩余容量 单位byte
	 *
	 * @return
	 */
	public static long getSDCardAllSize()
	{
		if (isSDCardEnable())
		{
			StatFs stat = new StatFs(getSDCardPath());
			// 获取空暇的数据块的数量
			long availableBlocks = (long) stat.getAvailableBlocks() - 4;
			// 获取单个数据块的大小(byte)
			long freeBlocks = stat.getAvailableBlocks();
			return freeBlocks * availableBlocks;
		}
		return 0;
	}

	/**
	 * 获取指定路径所在空间的剩余可用容量字节数。单位byte
	 *
	 * @param filePath
	 * @return 容量字节 SDCard可用空间,内部存储可用空间
	 */
	public static long getFreeBytes(String filePath)
	{
		// 假设是sd卡的下的路径,则获取sd卡可用容量
		if (filePath.startsWith(getSDCardPath()))
		{
			filePath = getSDCardPath();
		} else
		{// 假设是内部存储的路径,则获取内存存储的可用容量
			filePath = Environment.getDataDirectory().getAbsolutePath();
		}
		StatFs stat = new StatFs(filePath);
		long availableBlocks = (long) stat.getAvailableBlocks() - 4;
		return stat.getBlockSize() * availableBlocks;
	}

	/**
	 * 获取系统存储路径
	 *
	 * @return
	 */
	public static String getRootDirectoryPath()
	{
		return Environment.getRootDirectory().getAbsolutePath();
	}

}
时间: 2024-10-10 01:14:46

SD卡操作相关的工具SDCardUtils的相关文章

WP8.1 Study12:文件压缩与Known Folder(包含SD卡操作)

一.文件压缩 当应用程序保存和加载数据,它可以使用压缩. 1.使用 Windows.Storage.Compression.Compressor 压缩,获得一个Compressor stream. var s = await destFile.OpenAsync(FileAccessMode.ReadWrite); Compressor compressor = new Compressor(s.GetOutputStreamAt(0), CompressAlgorithm.Mszip, 0);

和键盘操作相关的工具类KeyBoardUtils

和键盘操作相关的工具类 package com.flyou.utils; import android.content.Context; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; /** * 打开或关闭软键盘 * * @author flyou * */ public class KeyBoardUtils { /** * 打卡软键盘 * * @param mEditTe

与WIFI操作相关的工具类

与WIFI操作相关的工具类 package com.flyou.utils; import java.util.List; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.wifi.ScanResult; import android.net.wifi.WifiInfo; import android

android进阶之SD卡操作

第一,判断SD卡是否挂载 第二获得SD卡目录声明权限进行文件读写操作. 获得SD卡目录的方式 API获取sd卡目录 SD卡状态

SD卡操作【安卓8】

读写SD卡 Context类的openFileInput和openFileOutput方法都是针对应用程序的数据文件夹进行的文件操作,由于手机的ROM容量有限,因此这种操作有一定局限性. 手机的SD卡提供了比ROM更大的存储容量.更加适合于存取大文件. Environment[android.os. Environment] 常量及方法 类型 描述 public static final String MEDIA_MOUNTED 常量 扩展存储设允许进行读写访问 public static fi

SD卡操作

1.SD卡的上电初始化和读写,都是通过发命令的方式进行的.命令有两种,一种是CMD,一种是ACMD,发ACMD之前,必须要发CMD55,大部分命令还需要带参数. 2.发送命令后,会有响应.命令的参数,以及各命令对应的响应,见协议. 3.SD卡初始化的时候,时钟速率不能超过400KHZ. 4.对SD卡进行配置的时候,比如位宽,不要忘记对MCU做响应的配置. 5.附件有完整的上电初始化和读写的流程,以及SD卡协议,对着代码很容易看懂.

关于读、写SD卡的操作

1.点击按钮将assets文件夹中的内容复制到SD卡中. private void copyToSD() { // 检测SD卡是否挂载  Environment.MEDIA_MOUNTED 表示被挂载 // Environment.getExternalStorageState() 将返回sd卡的状态 if(! Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { Toast.makeText(thi

第36章 SDIO—SD卡读写测试

第36章     SDIO-SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:<STM32F4xx参考手册>.<STM32F4xx规格书>.库帮助文档<stm32f4xx_dsp_stdperiph_lib_um.chm>以及SD简易规格文件<Physical Layer Simplified Specificatio

【STM32】使用SDIO进行SD卡读写(一)-初步认识SD卡

先介绍几个协会的网站,里面有相关的文件 多媒体卡协会网站:www.mmca.org(STM32F4的SDIO支持的一种通讯,但不是本文的重点) SD卡协会网站:www.sdcard.org CE-ATA:www.ce-ata.org(STM32F4的SDIO支持的一种通讯,但不是本文的重点) 我会着重在SD卡和SDIO协议的部分,以下图片截至SD卡协会网站 原本SD协议是用在存储上的(图片蓝底处),后来扩展了一个叫SDIO的协议(全名:Secure Digital Input and Outpu