【问题标题】:PhoneGap/Cordova BlackBerry FileSystem.root always returns SD card?PhoneGap/Cordova BlackBerry FileSystem.root 总是返回 SD 卡?
【发布时间】:2012-11-19 18:55:28
【问题描述】:

我在 BlackBerry 上加载了两个应用程序,一个是本机应用程序,另一个是基于 PhoneGap / Cordova 的应用程序。

这两个应用程序共享一个设置文件:file:///store/home/user/myfile.txt

要通过 Cordova 访问此文件,我调用:

fileSystem.root.getFile("home/user/myfile.txt", null, gotFileEntry, fail);

但是,在某些设备上,fileSystem.root返回的是 SDCard 目录,而不是存储文件的内部存储器,所以我收到 FileNotFound 错误。

我尝试调用fileSystem.root.getParent(gotParent, fail);,希望得到文件系统的根,然后像这样从内存中获取文件:

parentDir.getFile("store/home/user/myfile.txt", null, gotFileEntry, fail);

但这也不起作用,我仍然收到文件未找到错误。

如何使用PhoneGap/Cordova每次获取内存的根目录?

【问题讨论】:

    标签: cordova blackberry file-io sd-card


    【解决方案1】:

    您使用什么版本的 Cordova?
    从 BlackBerry WebWorks(OS 5.0 及更高版本)开始支持 Cordova File-API

    我是否正确地假设您只想读取(和写入)该文件?
    如果是这样,您可以尝试使用Cordova File-ReaderCordova File-Writer

    文件阅读器

    function win(file) {
        var reader = new FileReader();
        reader.onloadend = function(evt) {
            console.log("read success");
            console.log(evt.target.result);
        };
        reader.readAsText(file);
    };
    
    var fail = function(evt) {
        console.log(error.code);
    };
    
    entry.file(win, fail);
    

    文件编写器

    function win(writer) {
        writer.onwrite = function(evt) {
            console.log("write success");
        };
        writer.seek(writer.length);
        writer.write("appended text");
    };
    
    var fail = function(evt) {
        console.log(error.code);
    };
    
    entry.createWriter(win, fail);
    

    否则试一试 sn-p(代码属于旧项目,但当时有效)

    <script type="text/javascript" charset="utf-8" src="css-js/phonegap-1.0.0.js"></script>
    <script type="text/javascript" charset="utf-8">
    
    // Wait for PhoneGap to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);
    
    // PhoneGap is ready
    //
    function onDeviceReady() {
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
    
    }
    
    function gotFS(fileSystem) {
        var path = "readme.txt";
        fileSystem.root.getFile(path, {create: true, exclusive: false}, gotFileEntry, fail);
    
    }
    
    function gotFileEntry(fileEntry) {
    
        fileEntry.createWriter(gotFileWriter, fail);
    }
    
    function gotFileWriter(writer) {
        writer.onwrite = function(evt) {
            console.log("write success");
        };
        writer.write("some sample text");
    

    我希望我能帮助你,最好的问候 F481

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多