/**
* 文件操作工具类
*
* @author bingoogol@sina.com 14-1-25.
*/
public class StorageUtil {
private StorageUtil() {
}
/**
* 判断外部存储是否可写
*
* @return
*/
public static boolean isExternalStorageWritable() {
return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
}
/**
* 判断外存储是否可读
*
* @return
*/
public static boolean isExternalStorageReadable() {
String state = Environment.getExternalStorageState();
return Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state);
}
/**
* 根据Uri获取文件的真实路径
*
* @param uri
* @param context
* @return
*/
public static String getRealPathByUri(Context context, Uri uri) {
if ("content".equalsIgnoreCase(uri.getScheme())) {
String[] projection = { "_data" };
Cursor cursor = null;
try {
cursor = context.getContentResolver().query(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow("_data");
if (cursor.moveToFirst()) {
return cursor.getString(column_index);
}
} catch (Exception e) {
Logger.e(TAG, e.getMessage());
}
} else if ("file".equalsIgnoreCase(uri.getScheme())) {
return uri.getPath();
}
return null;
}
}