在android中开发快速地搜索手机文件引擎实例

大家都应该用过操作系统中的文件搜索功能吧!它可以快速协助我们找到想要的文件。如果要在手机制作一个文件搜索的功能,又该如何实现呢?其实这个功能并不困难,Java I/OAPI中提供了java.io.File对象,只要利用File对象的方法,再搭配AndroidEditTextTextView等对象,就可以轻松做出一个手机的文件搜索引擎。

本范例中使用EditTextButtonTextView三种对象来实现此功能,用户将要搜索的文件名称或关键字输入EditText中,单击Button后,程序会在根目录中寻找符合的文件,并将搜索结果显示于TextView中;如果找不到符合的文件,则显示“找不到文件”。

范例程序

src/irdc.ex04_11/EX04_11.java

范例中以java.io.File对象来取得根目录下的文件,经过比较后,将符合结果的文件路径写入TextView中,若要在TextView中换行,需使用/n来作换行符号。

 

/* import程序略 */

 

public class EX04_11 extends Activity

{

  /*声明对象变量*/

  private Button mButton;

  private EditText mKeyword;

  private TextView mResult;

 

  /** Called when the activity is first created. */

  @Override

  public void onCreate(Bundle savedInstanceState)

  {

    super.onCreate(savedInstanceState);

    /*加载main.xml Layout */

    setContentView(R.layout.main);

   

    /* 初始化对象 */

    mKeyword=(EditText)findViewById(R.id.mKeyword);

    mButton=(Button)findViewById(R.id.mButton);

    mResult=(TextView) findViewById(R.id.mResult);

   

    /* mButton添加onClickListener */

    mButton.setOnClickListener(new Button.OnClickListener()

    {

      public void onClick(View v)

      {

      /*取得输入的关键字*/

        String keyword = mKeyword.getText().toString();

        if(keyword.equals(""))

        {

          mResult.setText("请勿输入空白的关键字!!");

        }

        else

        {

          mResult.setText(searchFile(keyword));

        }

      }

    });

  }

 

  /* 搜索文件的method */

  private String searchFile(String keyword)

  {

    String result="";

    File[] files=new File("/").listFiles();

    for( File f : files )

    {

      if(f.getName().indexOf(keyword)>=0)

      {

        result+=f.getPath()+"/n";

      }

    }

    if(result.equals("")) result="找不到文件!!";

    return result;

  }

}

 

扩展学习

在本范例中,searchFileString keyword)这个方法的功能为搜索根目录下符合关键字的文件。在搜索文件的过程中,只搜索根目录中的文件,并没有进一步再对子目录下的文件比对,如果要再强化这个文件搜索的功能,让它也能搜索包含子目录下的所有文件,可以在程序中利用File.isDirectory()这个方法来判断其是否为目录。如果是的话,就继续往下一层寻找;不是的话,就终止向下寻找的动作。这个做法在后面的范例中会有详细的示范,要注意的是手机硬件环境是否能负荷程序做大规模的文件搜索,毕竟手机的硬件配备(处理器、内存)是比不上一般计算机的。

另外,在范例中仅针对关键字做了空白检查,在比较文件名称时也没有忽略大小写(要大小写完全符合才搜索的出来),如果要让这个搜索功能更完备,当然可以多做一点变化。例如,检查关键字是否包含特殊的字符、可选择比较文件时是否忽略大小写、可选择要搜索的文件类型,甚至是可自己指定要搜索的目录等,就看各位要如何运用了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值