Home  >  Article  >  Java  >  Android traverses all folders and subdirectories searching for files

Android traverses all folders and subdirectories searching for files

高洛峰
高洛峰Original
2017-01-17 15:08:441442browse

The example in this article shares with you Android traversing all folders and subdirectories to search for files for your reference. The specific content is as follows

java code:

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=0;j<files.length;j++)
 
   {
 
  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 code:

<?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 code:

<?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>

The above is the entire content of this article. I hope it will be helpful to everyone's learning, and I also hope that everyone will support the PHP Chinese website.

For more related articles about Android traversing all folders and subdirectories to search for files, please pay attention to the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:UUID generation in JavaNext article:UUID generation in Java