检查设备中是否存在具有Phonegap的文件

时间:2014-11-14 21:42:59

标签: ios file cordova

How to check a file's existence in phone directory with phonegap完全相关,

这就是我在Android 4.0.4中所拥有的:

function checkIfFileExists(path, fileExists, fileDoesNotExist) {
    var getFSSuccess = function(fileSystem) {
        fileSystem.root.getFile(path, { create: false }, fileExists, fileDoesNotExist);
    };
    var getFSFail = function(evt) {
        console.log(evt.target.error.code);
    };
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, getFSSuccess, getFSFail); //of requestFileSystem
};

fileExistsfileDoesNotExist基本上是提醒,所以我知道发生了什么。

正在发生的事情是,即使文件存在,也正在执行fileDoesNotExist

path类似于“file:///mnt/sdcard/DCIM/Camera/14112312312.jpg”,我得到的错误是ENCODING_ERR

更新:从名称中删除“file://”。我在getFSSuccess的开头添加了

if (path.indexOf("file://") > -1) {
    path = path.substring(7, path.length);
}

这解决了这个问题。

问题是:为什么以及iOS的解决方案是什么?我正在用全名更新tag的src属性(“file:///mnt/sdcard/DCIM/Camera/14112312312.jpg”)并且工作得很完美......

更新:如果文件是视频,则修复不起作用。我应该删除DCIM文件夹前的所有内容吗?

我认为与PhoneGap FileAPI Error Code 5 finding video in storage/emulated完全相关。

更新:看起来像这样

if (isAndroid() && path.indexOf("file://") > -1) {
    path = path.substring(7, path.length);
} else if (isAndroid() && path.indexOf("file:") > -1) {
    path = path.substring(5, path.length);
}

解决了这个问题。但我的问题仍然是,为什么?而且,我是否需要为iOS做类似的事情?

0 个答案:

没有答案