列举文件夹中所有文件


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;

@Override
public 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) {
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = this.getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}

@Override
public 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. */
@Override
public 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);
}

@Override
protected 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);
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值