android遍历文件夹下文件

这是一个用于浏览Blender文件的Android应用程序示例。该应用通过搜索指定路径下的所有.blend文件,并将其显示在一个列表视图中。当用户点击列表项时,会启动另一个活动并将所选文件传递过去。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不多说,直接上代码哈

package com.mstar.ui;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MyListView extends ListActivity 
{
	private static final String TAG = "MyListView";	
	private List<String> paths = new ArrayList<String>();
	private String rootPath = "/mnt/mstarnfs";
	private String rootPath1 = "/mnt/sdcard";
	private String blenderfile = new String();
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);		
		GetFiles(rootPath,".blend",true);
		GetFiles(rootPath1,".blend",true);
		setContentView(R.layout.mylistview);
		
		ArrayAdapter<String> fileList = (new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1, paths));
		setListAdapter(fileList); 
	}
	protected void onListItemClick (ListView l,View v,int position,long id)
	{
		//String name;
		blenderfile =paths.get(position);
		Log.i(TAG, "-------click is--------" + blenderfile);
		Intent intent = new Intent();
		intent.setClass(MyListView.this, MyHome.class);
		intent.putExtra("BlendFile", blenderfile);		
		startActivityForResult(intent, position);
		
	}
	public void GetFiles(String Path, String Extension, boolean IsIterative)  //搜索目录,扩展名,是否进入子文件夹
	{
	    File[] files = new File(Path).listFiles();
	    File f;
	    if(files == null)
	    {
	    	Toast.makeText(MyListView.this, Path+"is empty",Toast.LENGTH_LONG);
        	return;
	    }
	    for (int i = 0; i < files.length; i++)
	    {
	        f = files[i];
	        if(!f.canRead())
	        {
	        	Toast.makeText(MyListView.this, Path+"can not read",Toast.LENGTH_LONG);
	        	return;
	        }
	        if (f.isFile())
	        {
	            if (f.getName().contains(Extension))  //判断扩展名	            		
	            {
	            	Log.v(TAG,f.getPath());
	            	paths.add(f.getPath());
	            }
	        }
	        else if (f.isDirectory())  
	            GetFiles(f.getPath(), Extension, IsIterative);
	    }
	}
}

布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
	android:orientation="vertical"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	
    <ListView 
    android:id="@id/android:list"
    android:layout_gravity="center_vertical|center_horizontal"
    android:layout_width="960px" 
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:drawSelectorOnTop="false"
    android:choiceMode="singleChoice"
    android:background="@drawable/addapplist_bg"
    android:divider="#555555"    
    ></ListView>    
   
</LinearLayout>


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值