StorageUtil

/**
 * 文件操作工具类
 *
 * @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;
    }      
}

 

posted @ 2014-03-26 16:58  bingoogolapple  阅读(278)  评论(0)    收藏  举报