I am working on an iPad app using appcelarator titanium and need to iterate over the content of a directory and determine the type of the contained items, whether it is a file or directory.
This is what I have so far:
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
        }
 开发者_运维百科   }
}
I always get the alert box saying " is an unknown object.". It seems, that isFile and isDirectory are not working properly, or did I miss something? Does anybody else had the same problem?
Thanks for any advice!
The following should work:
var isDirectory = function(f){
    return f.exists() && f.getDirectoryListing() != null;
}
var isFile = function(f){
    return f.exists() && f.getDirectoryListing() == null;
}
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论