首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

罗列文件夹中所有文件

2012-06-30 
列举文件夹中所有文件package com.edison.eximport java.io.Fileimport java.util.ArrayListimport jav

列举文件夹中所有文件

package com.edison.ex;import java.io.File;import java.util.ArrayList;import java.util.List;import android.content.Context;public class ListAllFiles {public Context mCon;public List<File> fileNameList;/***/public ArrayList<String> fnList;public ListAllFiles(Context mCon) {this.mCon = mCon;}public void initFileList(String mPath) {File path = new File(mPath);File[] f = path.listFiles();fill(f);}/** Returns an array of files contained in the directory */public void initFileList(File mFile) {File[] f = mFile.listFiles();fill(f);}public void fill(File[] files) {fileNameList = new ArrayList<File>();for (File file : files) {if (isValidFileOrDir(file)) {fileNameList.add(file);}}System.out.println("fileNameList.size===" + fileNameList.size());fileToStrArr(fileNameList);}/** 将文件夹或文件名字的名称保存到字符串数组当中. */private String[] fileToStrArr(List<File> fl) {fnList = new ArrayList<String>();for (int i = 0; i < fl.size(); i++) {String nameString = fl.get(i).getName();fnList.add(nameString);}System.out.println("fnList.size===" + fnList.size());return fnList.toArray(new String[0]);}/** 检查是否为合法的文件夹名和文件(文件是否为txt文件) */private boolean isValidFileOrDir(File file) {if (file.isDirectory()) {return true;} else {String fileName = file.getName().toLowerCase();if (fileName.endsWith(".txt")) {return true;}}return false;}}


package com.edison.ex;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.widget.TextView;public class ViewFile extends Activity {private String filenameString;private static final String gb2312 = "GB2312";private static final String utf8 = "UTF-8";private static final String defaultCode = gb2312;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.filebrowser);try {Bundle bunde = this.getIntent().getExtras();filenameString = bunde.getString("fileName");refreshGUI(defaultCode);} catch (Exception e) {}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {MenuInflater inflater = this.getMenuInflater();inflater.inflate(R.menu.menu, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case R.id.gb2312:refreshGUI(defaultCode);break;case R.id.utf8:refreshGUI(utf8);break;}return super.onOptionsItemSelected(item);}private void refreshGUI(String code) {TextView tv = (TextView) findViewById(R.id.view_contents);String fileContent = getStringFromFile(code);tv.setText(fileContent);}public String getStringFromFile(String code) {try {StringBuffer sBuffer = new StringBuffer();FileInputStream fInputStream = new FileInputStream(filenameString);InputStreamReader inputStreamReader = new InputStreamReader(fInputStream, code);BufferedReader in = new BufferedReader(inputStreamReader);if (!new File(filenameString).exists()) {return null;}while (in.ready()) {sBuffer.append(in.readLine() + "\n");}in.close();return sBuffer.toString();} catch (Exception e) {e.printStackTrace();}return null;}// 读取文件内容public byte[] readFile(String fileName) throws Exception {byte[] result = null;FileInputStream fis = null;try {File file = new File(fileName);fis = new FileInputStream(file);result = new byte[fis.available()];fis.read(result);} catch (Exception e) {} finally {fis.close();}return result;}}

package com.edison.ex;import java.io.File;import android.app.ListActivity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.ArrayAdapter;import android.widget.ListView;public class ReadTextActivity extends ListActivity {ListAllFiles mListAllFiles;ArrayAdapter<String> adapter;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);mListAllFiles = new ListAllFiles(this);mListAllFiles.initFileList(android.os.Environment.getExternalStorageDirectory());adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, mListAllFiles.fnList);setListAdapter(adapter);}@Overrideprotected void onListItemClick(ListView l, View v, int position, long id) {Intent intent = new Intent(ReadTextActivity.this, ViewFile.class);Bundle bundle = new Bundle();File file = mListAllFiles.fileNameList.get(position);if (file.isDirectory()) {File[] f = file.listFiles();mListAllFiles.fill(f);adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, mListAllFiles.fnList);setListAdapter(adapter);} else {bundle.putString("fileName", file.getAbsolutePath());intent.putExtras(bundle);startActivityForResult(intent, 0);}}}






热点排行