2012-06-22 37 views
-1

我需要在Appcelerator Titanium for Android中使用的應用程序的幫助。Appcelerator/Android:無法列出文件系統的第二級目錄

我得到了下面的代碼,讓我顯示附SD的第一個(根)級到仿真器(圖像樣本如下):

/* 
* 
* Dynamic data, 
* taken from the SD card 
* 
*/ 

//Get the SD card reference 
var dir = Titanium.Filesystem.getFile(Titanium.Filesystem.externalStorageDirectory); 

//Get the directory listing 
var directoryStr = dir.getParent().getDirectoryListing(); 

//Convert the listing into an array for display in tableview 
var directoryArr = directoryStr.toString().split(','); 

//Initialize tabledata 
var dirData = []; 

for (var i=0; i < directoryArr.length; i++) { 

     dirData.push({ leftImage:'/images/folder.png', title: directoryArr[i], value: Titanium.Filesystem.externalStorageDirectory + Titanium.Filesystem.separator + directoryArr[i], hasChild:true }); 

     Ti.API.info(Titanium.Filesystem.externalStorageDirectory + directoryArr[i]); 

}; 

    //Table view for directories 
var tableDirs = Ti.UI.createTableView({ 
    data: dirData  
});    

即輸出該:

Data output using the above code

下面的代碼應該給我一個列出裏面目錄的字符串,例如上圖中的Images目錄。

tableDirs.addEventListener('click', function (e) { 

    if (e.rowData.hasChild) { 


     //Get the SD card reference 
     var secDir = Titanium.Filesystem.getFile(Titanium.Filesystem.externalStorageDirectory + '/' + e.rowData.title); 

     //Get the directory listing 
     var secDirStr = secDir.getDirectoryListing(); 

     alert(secDirStr); 


    }; 



}); 

但是,相反,我得到這個:

Unable to understand how to handle that object

返回我的對象​​,我不知道如何處理。

有時候,如果我使用下面的代碼:

 var dir = Titanium.Filesystem.getFile(Titanium.Filesystem.externalStorageDirectory + '/Images'); 

的目錄列表返回我的文件「deploy.json」。

任何指針將不勝感激。我對Android開發相當陌生,所以我可能會漏掉一些明顯的東西。

在此先感謝!

回答

0

getDirectoryListing()返回一個數組。要查看其內容,您必須查看數組中的特定項目,如:secDirStr [0] .toString();

嘗試for循環以下,以查看其內容:

if (e.rowData.hasChild) { 

    //Get the SD card reference 
    var secDir = Titanium.Filesystem.getFile(Titanium.Filesystem.externalStorageDirectory + '/' + e.rowData.title); 

    //Get the directory listing 
    var secDirStr = secDir.getDirectoryListing(); 

    for (i=0, max=secDirStr.length; i<max; i++){ 
     alert(secDirStr[i].toString()); 
    } 
}; 
相關問題