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

本文详细介绍了在Android开发中,如何进行文件路径的各种转换,包括path转file、path转uri、uri转path、uri转file、file转uri以及file转path的具体实现方法。通过这些转换,开发者可以更好地管理和操作应用中的文件资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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();

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值