File.isFile和File.isDirectory在Appcelerator Titanium中无法正常工作吗?

时间:2011-01-07 10:57:05

标签: titanium appcelerator-mobile

我正在使用appcelarator钛工作在iPad应用程序上,需要遍历目录的内容并确定所包含项目的类型,无论是文件还是目录。

这是我到目前为止所做的:

dirFullPath = '/full/path/to/directory';
var dir = Titanium.Filesystem.getFile(dirFullPath);
var dirItems = dir.getDirectoryListing();
for ( var i=0; i<dir.length; i++ ) {
    itemFullPath = dirFullPath
                 + Titanium.Filesystem.getSeparator()
                 + dir[i].toString();
    testItem = Titanium.Filesystem.getFile(itemFullPath);
    if ( testItem.exists() ) {
        alert(itemFullPath + ' exists.');             // item exists, alert box appears
        if ( testItem.isDirectory ) {            
            alert(itemFullPath + ' is a directory.'); // this code is never executed
        }
        else if ( testItem.isFile ) {
            alert(itemFullPath + ' is a file.');      // this code is never executed
        }
        else {
            alert(itemFullPath + ' is an unknown object.'); // this alert is always shown
        }
    }
}

我总是得到警告框说“是一个未知的对象。”。看来,isFile和isDirectory工作不正常,还是我错过了什么?还有其他人有同样的问题吗?

感谢您的任何建议!

1 个答案:

答案 0 :(得分:1)

以下内容应该有效:

var isDirectory = function(f){
    return f.exists() && f.getDirectoryListing() != null;
}

var isFile = function(f){
    return f.exists() && f.getDirectoryListing() == null;
}