android - React Native - 从android内容uri获取文件名

标签 android reactjs react-native react-native-fs


我需要从 android 内容 uri 获取文件名,例如:
内容://com.android.providers.downloads.documents/document/15

我尝试使用 react-native-fs stat 但它返回“文件不存在”的错误。

我该怎么做?

最佳答案

我没有在 react native 中找到纯粹的解决方案,所以我在 android 中创建了 native 包并在 react native 中创建了模块,所以我可以使用它。
这是 android 代码:

@ReactMethod
    public void getFileNameFromUri(String filepath, Promise promise) {
        Uri uri = Uri.parse(filepath);
        String fileName = "";

        if (uri.getScheme().equals("content")) {
            try {
                Cursor cursor = reactContext.getContentResolver().query(uri, null, null, null, null);

                if (cursor.moveToFirst()) {
                    fileName = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
                    Log.d("FS", "Real File name: " + fileName);
                }
                cursor.close();
                promise.resolve(fileName);
            } catch (IllegalArgumentException ignored) {
                promise.reject("1", "Can not get cursor");
            }
        } else {
            promise.resolve(fileName);
        }
    }

这是如何从 android 原生代码中模块化到 react native 中: react-native-modules-android

关于android - React Native - 从android内容uri获取文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60168797/

相关文章:

javascript - 飞行前响应中的 Access-Control-Allow-Methods 不允许方法 PATCH

javascript - 在将状态映射到 Prop 后,访问组件 "this"的 Prop 时未定义

ios - 如何解决 NSScanner 上的 "Undefined symbols for architecture x86_64"问题? React-Native 中的 Swift pod

react-native - 如果签名并发布,React Native App 会崩溃。在 Debug模式下工作正常

react-native - 向API请求formData,在上传图片时在axios中获取 “Network Error”

java - 删除 Android SQLite 数据库中的行后行 ID 错误

android - 在 Xamarin.Android 中通过 MVVMCross 绑定(bind) OxyPlot

javascript - 将鼠标悬停在同级组件上时更改组件的样式

java - 如何转换特殊字符, "Fran%c3%a7ais"-> "Français"?

java - 错误: deleting all rows instead of 1 row Android