欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android中Uri和path file三者的相互转换

程序员文章站 2022-05-06 20:05:39
一、path转fileFile file = new File(path);二、path转uriUri uri = Uri.parse(path); 三、uri转path /** * 将URI路径转化为path路径 */ public static String getRealPathFromURI(Context context,Uri contentURI) { String result; Cursor curs....
一、path转file
File file = new File(path);

二、path转uri

Uri uri = Uri.parse(path);  

三、uri转path

 /**
     * 将URI路径转化为path路径
     */
    public static String getRealPathFromURI(Context context,Uri contentURI) {
        String result;
        Cursor cursor = null;
        try {
            cursor = context.getContentResolver().query(contentURI, null, null, null, null);
        } catch (Throwable e) {
            e.printStackTrace();
        }
        if (cursor == null) {
            result = contentURI.getPath();
        } else {
            cursor.moveToFirst();
            int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
            result = cursor.getString(idx);
            cursor.close();
        }
        return result;
    }

四、uri转file

                    File file = null;   //图片地址
                    try {
                        file = new File(new URI(uri.toString()));
                    } catch (URISyntaxException e) {
                        e.printStackTrace();
                    }

五、file转uri

   private static Uri getUriForFile(Context context, File file) {
        if (context == null || file == null) {
            throw new NullPointerException();
        }
        Uri uri;
        if (Build.VERSION.SDK_INT >= 24) {
            uri = FileProvider.getUriForFile(context.getApplicationContext(), context.getPackageName()+".fileProvider", file);
        } else {
            uri = Uri.fromFile(file);
        }
        return uri;
    }

六、file转path

String path = file.getPath()

 

 

 

本文地址:https://blog.csdn.net/houruoyu3/article/details/107390244