查找程序根目录下所有文件-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() 文件是否为隐藏文件
相关文章推荐
- 查找程序根目录下所有文件(Java IO与ListActivity的结合)
- Android--查找程序根目录下所有文件/Java IO操作
- Android--查找程序根目录下所有文件/Java IO操作
- 《Java examples in a nutshell》书中一个关于列出某一目录下的所有目录与文件的程序源代码
- java程序的递归算法,列出某个目录下的所有子目录和文件
- java程序 一次改变指定目录下所有文件编码(包括子目录中的文件)
- 编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
- 编写一个程序,将 d:\java 目录下的所有.java 文件复制到 d:\jad 目录下,并将原来文件的扩展名从.java 改为.jad。
- 编写一个程序,将e:\java目录下的所有.java文件复制到e:\jad目录下
- 编写一个程序,将 d:\java目录下的所有.java 文件复制到d:\jad目录下,并将原来文件的扩展名从.java 改为.jad。
- java程序的递归算法,列出某个目录下的所有子目录和文件
- 编写一个程序,将d:\yy目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.txt
- 编写程序,将指定目录下所有.java 文件拷贝到另一个目的中,并将扩展名改为.txt。
- 利用IO的知识,实现一个程序列出某个目录下的所有的”.java”文件。
- 一个使用多线程删除指定目录及子目录下所有指定文件的Java程序(源码)
- 编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad。
- java程序的递归算法,列出某个目录下的所有子目录和文件
- 编写一个Python程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径
- 编写一个程序,将 d: \ java 目录下的所有.java 文件复制到d: \ jad 目录下,并 将原来文件的扩展名从.java 改为.jad
- 编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad