2011-01-07 22 views
0

我正在使用appcelarator titanium編寫iPad應用程序,需要遍歷目錄的內容並確定所包含項目的類型,無論它是文件還是目錄。File.isFile和File.isDirectory在Appcelerator Titanium中無法正常工作嗎?

這是我到目前爲止有:

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

我總是得到警告框說:「是一個不明物體。」看來,這是文件和isDirectory工作不正常,或者我錯過了什麼?其他人是否也有同樣的問題?

感謝您的任何建議!

回答

1

下面應該工作:

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

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