您的位置:首页 > 编程语言 > Java开发

查找程序根目录下所有文件-Java i/o与ListActivity

2012-08-14 14:10 344 查看
import java.io.File;
import java.util.ArrayList;
import java.util.List;

import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class Main extends ListActivity {

/* 对象声明
* items:存放显示的名称
* paths:存放文件路径
* rootPath:起始目录
*/
private List<String> items = null;
private List<String> paths = null;
private String rootPath="/";
private TextView mPath;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//载入main.xml Layout
setContentView(R.layout.main);
mPath=(TextView)findViewById(R.id.mPath);
getFileDir(rootPath);
}
//	取得文件架构的方法
private void getFileDir(String filePath) {
//设置目前所在路径
mPath.setText(filePath);

items=new ArrayList<String>();
paths=new ArrayList<String>();
File file = new File(filePath);
File[] files = file.listFiles();

if (!filePath.equals(rootPath)) {
//第一条设置为:回到根目录
items.add("Back to"+rootPath);
paths.add(rootPath);
//第二条设置为:回上层
items.add("Back to ../");
paths.add(file.getParent());
}
//将所有文件添加到ArrayList中
for (int i = 0; i < files.length; i++) {
File file2 =files[i];
items.add(file2.getName());
paths.add(file2.getPath());
}
//声明ArrayAdapter,使用file_row这个Layout,并将Adapter设置给此ListActivity
ArrayAdapter<String> fileList = new ArrayAdapter<String>(this, R.layout.file_row, items);
setListAdapter(fileList);
}
//设置ListItem被单击时要做的动作
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
File file = new File(paths.get(position));
if (file.isDirectory()) {
getFileDir(paths.get(position));
}
else {
//如果是文件,跳出AlertDialog
new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_launcher)
.setTitle("["+file.getName()+"] is File!")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub

}
}).show();
}
super.onListItemClick(l, v, position, id);
}
}


res/layout/file_row.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="20px"
android:textSize="14sp"></TextView>
其中main.xml中的ListView
<ListView
<!--自定义Layout中必须包含一个ListView的Widget,且必须指定 android:id="@android:id/list" -->
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</ListView>

file.getName() 取得文件名称

file.getPath() 取得文件路径

new Timestamp(file.lastModified()) 取得文件最后修改时间

file.canRead() 文件是否可读取

file.canWrite() 文件是否可写入

file.isHidden() 文件是否为隐藏文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐