2012-06-22 40 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()); 
    } 
}; 
相关问题