2014-09-27 44 views
2

我在Android测试和我有:的PhoneGap /科尔多瓦文件系统dirEntry.isDirectory产生错误时,应该是完全错误的

function initialize(){ 
    console.log('into initialize'); 
    document.addEventListener('deviceready', onDeviceReady, false); 
} 

function onDeviceReady(e){ 
    window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, onSuccess, errorHandler); 
} 

function onSuccess(fs){ 
    fs.root.getFile('log.txt',{},function(fileEntry){console.log('the file is: ' + fileEntry.isFile);},errorHandler); 
    fs.root.getDirectory('MyPictues',{},function(dirEntry){if(!dirEntry.isDirectory){console.log('My Pictures is not a directory');} else {console.log('My Pictures is a directory');}},errorHandler); 
} 

function errorHandler(e) { 
    var msg = ''; 

    switch (e.code) { 
    case FileError.QUOTA_EXCEEDED_ERR: 
     msg = 'QUOTA_EXCEEDED_ERR'; 
     break; 
    case FileError.NOT_FOUND_ERR: 
     msg = 'NOT_FOUND_ERR'; 
     break; 
    case FileError.SECURITY_ERR: 
     msg = 'SECURITY_ERR'; 
     break; 
    case FileError.INVALID_MODIFICATION_ERR: 
     msg = 'INVALID_MODIFICATION_ERR'; 
     break; 
    case FileError.INVALID_STATE_ERR: 
     msg = 'INVALID_STATE_ERR'; 
     break; 
    default: 
     msg = 'Unknown Error'; 
     break; 
    }; 
    console.log('Error: ' + msg); 
} 

我调用初始化()加载文件时。 奇怪的是在如果在这条线:

fs.root.getDirectory('MyPictues',{},function(dirEntry){if(!dirEntry.isDirectory){console.log('My Pictures is not a directory');} else {console.log('My Pictures is a directory');}},errorHandler); 

我有我的根一个名为“MyPictures”的目录里面,就行了上面我拼错它试图验证是否“MyPictues”的存在,但我得到的'NOT_FOUND_ERR'而不是简单地获取日志:'我的图片不是目录'。 如果我在没有拼写错误的情况下进行测试,我会得到正确的行为。

回答

2

不要调用初始化文件上的负载()函数,写

document.addEventListener('deviceready', onDeviceReady, false); 

之外的功能,在写入onDeviceReady方法将被调用后,当设备准备就绪 那个时候你不会得到任何错误。 as

<script> 
document.addEventListener('deviceready', onDeviceReady, false); 

function onDeviceReady(e){ 
    window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, onSuccess, errorHandler); 
} 

function onSuccess(fs){ 
    fs.root.getFile('log.txt',{},function(fileEntry){console.log('the file is: ' +  fileEntry.isFile);},errorHandler); 
    fs.root.getDirectory('MyPictues',{},function(dirEntry){if(!dirEntry.isDirectory){console.log('My Pictures is not a directory');} else {console.log('My Pictures is a directory');}},errorHandler); 
} 

function errorHandler(e) { 
var msg = ''; 

switch (e.code) { 
case FileError.QUOTA_EXCEEDED_ERR: 
    msg = 'QUOTA_EXCEEDED_ERR'; 
    break; 
case FileError.NOT_FOUND_ERR: 
    msg = 'NOT_FOUND_ERR'; 
    break; 
case FileError.SECURITY_ERR: 
    msg = 'SECURITY_ERR'; 
    break; 
case FileError.INVALID_MODIFICATION_ERR: 
    msg = 'INVALID_MODIFICATION_ERR'; 
    break; 
case FileError.INVALID_STATE_ERR: 
    msg = 'INVALID_STATE_ERR'; 
    break; 
default: 
    msg = 'Unknown Error'; 
    break; 
}; 
    console.log('Error: ' + msg); 
} 
</script> 
+0

你测试了吗?我试着用你的代码,我也得到了同样的错误。但是我多次看到document.addEventListener('deviceready',onDeviceReady,false);里面的一个函数在body上执行加载。 – Ferex 2014-09-28 07:57:39

相关问题