代码之家  ›  专栏  ›  技术社区  ›  kcNeko

无法使用:on react native读取文件名

  •  1
  • kcNeko  · 技术社区  · 5 年前

    我在React Native上使用了一个PDF查看器 没有:的文件可以打开 但其他 文件:无法打开 会回来的 No content provider .

    有没有一种方法可以读取本地存储的文件:在它的名称上是react native?

    例如,这种文件路径

    const filenameWithSpace = 'file:///storage/emulated/0/somwhere/foo foo Nov 21, 2018 12:16:04 PM.pdf'
    

    我已经试过了 encodeURIComponent encodeURI 但没用。

    更新: 文件名的问题实际上是:字符而不是空格。

    提前谢谢你!

    3 回复  |  直到 5 年前
        1
  •  0
  •   HungrySoul    5 年前

    您试过使用“\”(正斜杠)吗??

    请告诉我这是否有效。

    var str = "file:///storage/emulated/0/somwhere/foo foo Nov 21, 2018 12:16:04 PM.pdf";
        var result = str.split(" ").join("\ "); // added '\'
        console.log('Result',result);
    

    从Vishal Vaghasiya提供的答案中复制的片段

        2
  •  0
  •   kcNeko    5 年前

    我无法解释应用程序的整个过程。

    从数据库返回的内容如下

    {file: "//storage/emulated/0/somwhere/foo foo Nov 21, 2018 12:16:04 PM.pdf"}
    

    我用它来阅读我的pdf库。但是,本地存储的实际文件名为 foo foo Nov 21, 2018 121604 PM.pdf

    所以我不得不这么做

    'file://' + file.replace(/:/g, "")
    

    或者可以这样做

    'file://' + file.replace(/[|&:;$%@"<>()+,]/g, "")
    
        3
  •  -1
  •   Vishal Vaghasiya    5 年前

    试试这个办法

    var str = "file:///storage/emulated/0/somwhere/foo foo Nov 21, 2018 12:16:04 PM.pdf";
            var result = str.split(" ").join("");
            console.log('Result',result);
    

    文件:///storage/emulated/0/somwhere/foofoonov21201812:16:04pm.pdf