2011-01-07 9 views
0

Ich arbeite an einer iPad App mit appcelarator titanium und muss über den Inhalt eines Verzeichnisses iterieren und den Typ der enthaltenen Elemente bestimmen, ob es sich um eine Datei oder ein Verzeichnis handelt. DieseFunktionieren File.isFile und File.isDirectory in Appcelerator Titanium nicht ordnungsgemäß?

ist das, was ich bisher:

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 
     } 
    } 
} 

ich immer die Warnmeldung erhalten sagen „ist ein unbekanntes Objekt.“. Es scheint, dass File und isDirectory nicht richtig funktionieren, oder habe ich etwas übersehen? Hat jemand anderes das gleiche Problem?

Danke für jede Beratung!

Antwort

1

Folgendes sollte funktionieren:

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

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