Android-Android下怎么遍历assets录下的子文件夹

Android-Android下怎么遍历assets录下的子文件夹,第1张

assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。

assets的读取方式:

1. 先在Activity里面调用getAssets() 来获取AssetManager引用。

2. 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream。

3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close() 。

4.调用AssetManager.close() 关闭AssetManager。

需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的 *** 作。

java代码

import java.io.File

import android.app.Activity

import android.os.Bundle

import android.view.View

import android.view.View.OnClickListener

import android.widget.Button

import android.widget.EditText

import android.widget.TextView

import android.widget.Toast

public class ShuosouwenjianActivity extends Activity implements OnClickListener {

private File file

private String path

private String info

private String key//关键字

private TextView result// 显示结果

private EditText et// 编辑view

private Button search_btn// button view

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

setContentView(R.layout.main)

result = (TextView)findViewById(R.id.TextView_Result)

et = (EditText)findViewById(R.id.key)

search_btn = (Button)findViewById(R.id.button_search)

// file = new File(Environment.getExternalStorageDirectory().getPath())

file = new File("/sdcard/")

info = getString(R.string.info)

search_btn.setOnClickListener(this)

}

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

path = ""

result.setText("")

key = et.getText().toString()

BrowserFile(file)

}

public void BrowserFile(File fileold) {

if (key.equals("")) {

Toast.makeText(this, getString(R.string.pleaseInput), Toast.LENGTH_LONG).show()

} else {

search(fileold)

if (result.getText().equals("")) {

Toast.makeText(this, getString(R.string.notFound), Toast.LENGTH_SHORT).show()

}

}

}

private void search(File fileold)

{

try{

File[] files=fileold.listFiles()

if(files.length>0)

{

for(int j=0j<files.lengthj++)

{

if(!files[j].isDirectory())

{

if(files[j].getName().indexOf(key)>-1)

{

path += "\n" + files[j].getPath()

result.setText(info+path)

//shuju.putString(files[j].getName().toString(),files[j].getPath().toString())

}

}

else{

this.search(files[j])

}

}

}

}

catch(Exception e)

{

}

}

}

MAIN.XML代码:

<?xml version="1.0" encoding="utf-8"?>

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:id="@+id/widget0"

>

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/button_search"

android:layout_x="253px"

android:layout_y="5px"

android:text="@string/toSearch"

/>

<EditText

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/key"

android:text="821077962.db"

/>

<TextView

android:layout_width="fill_parent"

android:layout_height="370px"

android:id="@+id/TextView_Result"

android:layout_x="0px"

android:layout_y="60px"

/>

</AbsoluteLayout>

strings.xml代码:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="hello">Hello World, Activity07!</string>

<string name="app_name">文件搜索</string>

<string name="toSearch">搜索</string>

<string name="info">系统SDCard目录文件路径:\n</string>

<string name="pleaseInput">请输入关键字!</string>

<string name="notFound">SD卡中没有相关文件!!</string>

<string name="pathError">读取路径出错!!</string>

</resources>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11865209.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存