Cordova应用程序:如何获取文件的实际路径
Cordova App : How to get the actual path of file
我正在使用Cordova制作android和iOS应用程序,现在我想检查目录中是否已经存在文件。
首先,我从服务器下载文件,并使用下面的代码将其保存在本地
$scope.downloadFile = function(){
alert(cordova.file.dataDirectory)
var fileTransfer = new FileTransfer();
var uri = encodeURI("http://example.com/files/th/001.mp3");
var downloadPath = cordova.file.dataDirectory+'001.mp3'; // ANDROID
fileTransfer.download(
uri,
downloadPath,
function(entry) {
$scope.savepath = entry.toInternalURL();
alert("download complete: " + entry.toURL());
alert('saved at : '+entry.toInternalURL());
},
function(error) {
alert("download error source " + error.source);
alert("download error target " + error.target);
alert("upload error code" + error.code);
},
false,
{
headers: {
"Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
}
}
);
}//End DownloadFile
我想使用checkIfFileExists(path)
方法检查文件是否已经存在
function checkIfFileExists(path){
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem){
//alert('result: '+JSON.stringify(fileSystem.root))
fileSystem.root.getFile(path, { create: false }, fileExists, fileDoesNotExist);
}, getFSFail); //of requestFileSystem
}
function fileExists(fileEntry){
alert("File " + fileEntry.fullPath + " exists!");
}
function fileDoesNotExist(){
alert("file does not exist");
}
function getFSFail(evt) {
console.log(evt.target.error.code);
}
我在手机上检查了一下,文件已经保存到Android/data/com.myname.myappname/file/001.mp3
但问题是每当我使用类似的路径时,代码总是显示文件不存在
cordova.file.dataDirectory+'001.mp3';
或cdvfile://localhost/persistent/files/001.mp3
或'cdvfile://localhost/files/001.mp3'
所以我想问一下,我需要使用的真实路径来检查文件是否存在。
请给我任何建议。
谨致问候。
是否需要使用或CheckFileExists?你可以尝试使用Phonegap的FileReader方法吗?
var reader = new FileReader();
var fileSource = cordova.file.dataDirectory+'001.mp3'
reader.onloadend = function(evt) {
if(evt.target.result == null) {
// Null? You still have a problem: file doesn't exist.
} else {
// Otherwise the file exists.
}
};
//Check if the file exists
reader.readAsDataURL(fileSource);
相关文章:
- 将Windows文件路径组织到文件夹中
- 在ng中给出文件路径包括什么
- 无法在ajax调用中发布绝对文件路径-无论我做什么,它都会返回斜杠
- 用于在web服务器中上载的文件路径
- javascript文件中带有php(wordpress)的Src文件路径
- 在linux上使用软件包减少grunt的大小.文件路径对Jenkins来说太长
- 使用正则表达式angularjs验证文件路径
- 从不一致的文件路径数组中获取键的值
- 使用 jQuery 从 HTML 中的多个图像元素中删除文件路径
- 如何将本地文件路径转换为文件::?/url在node.js中的安全性
- 如何在dropzone.js中获取选定的文件路径
- 为什么在下面的场景中,用于存储所选文件名和文件路径的隐藏输入字段没有在表单上生成
- windows文件路径转换为mac
- 将文件路径从XSL传递到JavaScript函数
- 是否可以不在grunt中提及所有的脚本文件路径
- 输入类型文件将文件路径添加到范围
- Node Webkit从avi文件路径获取视频持续时间
- 如何将JavaScript文件路径映射到ASP.Net MVC控制器操作
- php文件上传返回文件和文件路径的有效性
- 通过document.location以javascript中的字符串形式传递文件路径