android遍历文件夹
A. android 怎样遍历文件夹下的文件(文件夹下可能还有文件夹)
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=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代码:
<?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>
B. 在android中怎么实现遍历sd卡的所有路径,在将找到的mp3文件显示在listview中,请问这个问题你会了吗
android中查找mp3文件不需要遍历sd卡,系统会将音频文件存到Content
Provider中,直接读取就可以了.如果你需要,留下邮箱,我把我刚学android时写的一个简单音乐播放器的例子发给你
C. 关于android遍历文件按照时间排序的问题
我觉得方便的话就是把它存成整数,date.getTime(),这样排序就简单了,然后返回成日期可以用new Date(time);
D. Android Studio 如何遍历openFileOutput保存的文件
File file = new File(SYS_FILE_PATH);
if( file.isDirectory() ) {
File [] fileArray = file.listFiles();
if(null != fileArray && 0 != fileArray.length) {
for(int i = 0; i < fileArray.length; i++) {
// fileArray[i].getName();
Log.i("MainActivity.java", fileArray[i].getName());
}
}
}
android读取指定文件夹里的所有文件
E. android开发,想要获取手机内的所有pdf文件,该怎么做
先获取读取文件的权限,再遍历文件夹及子文件夹,直到结束就可以了。
private void getAllFiles(File root,ArrayList<File> results){
File files[] = root.listFiles();
if(files != null){
for (File f : files){
if(f.isDirectory()){
getAllFiles(f,results);
}
else{
String name = f.getName();
String extension
= name.substring(name.lastIndexOf("."));
if(extension.Equal("pdf")){
results.add(f);
}
}
}
}
}
F. android怎么遍历手机上所有文件和目录 存到
把这些指定格式文件的路径存放到String数组 里面去,根据点击item条目的position 去数组里面那路径,,就可以了。
G. android开发,怎么遍历SD卡所有MP3文件并列举出来,能不能给我最简单的代码呀
Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
//遍历媒体数据库
if(cursor.moveToFirst()){
while (!cursor.isAfterLast()) {
//歌曲编号
int id = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
//歌曲id
int trackId=cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID));
//歌曲标题
String title = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
//歌曲的专辑名:MediaStore.Audio.Media.ALBUM
String album = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));
//歌曲的歌手名: MediaStore.Audio.Media.ARTIST
String artist = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
//歌曲文件的路径 :MediaStore.Audio.Media.DATA
String url = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
//歌曲的总播放时长:MediaStore.Audio.Media.DURATION
int ration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
//歌曲文件的大小 :MediaStore.Audio.Media.SIZE
Long size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE));
//歌曲文件显示名字
String disName=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME));
cursor.moveToNext();
}
cursor.close();
}
H. Android中 遍历SD根目录 如果发现XXX文件 则把这个文件拷贝到内存中 求代码得思路或者框架
首先创建一个以sd目录为路径的File对象,然后用递归实现遍历这个file对象下所有的子目录以及文件,如果发现和要找的文件,则停止遍历。
不知道你说的将文件放到内存中是什么意思。不理解这样的需求。我的理解:将文件放到内存中是没有意义的。因为对文件的所有操作都没有将文件放到内存中的必要。比如:如果是一个xml文件,可以使用相应的库将此文件反序列化,如果是文本文件可以使用流将文件内容读到内存中。但是,读到内存的目的是什么?
不理解为什么有从一个目录下找到某个文件的需求,这样做事效率极低的做法,sd中可能有几十万个文件,这样显然不是一个好的方式。
I. Android-Android下怎么遍历assets录下的子文件夹
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 中的文件只可以读取而不能进行写的操作。
J. 安卓开发 怎么遍历系统文件
Android是linux内核
文件系统 根目录 /
你可以这样 File file = new File("/");
从这里开始递归,遍历
但是你要去了解linux权限方面的东西, 如果是root用户的文件,你是没有权限查看的