`

列举文件夹中所有文件

 
阅读更多
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);
		}
	}
}







分享到:
评论

相关推荐

    C# 列举指定文件夹中的所有文件

    在C#编程中,列举指定文件夹中的所有文件是一项常见的任务,这通常涉及到对文件系统进行操作。在本文中,我们将深入探讨如何使用C#语言实现这一功能,并讲解相关的类库、方法和步骤。 首先,我们需要引入`System.IO...

    计算文件夹下所有文件的MD5值

    这个脚本在非递归模式下遍历指定目录,对每个文件进行MD5哈希计算,并将结果保存到文件中,以便后续比较和验证。虽然MD5已不再被视为安全的哈希算法,但在很多场景下,它仍然能满足数据完整性检查的需求。

    pb9 删除文件夹及文件夹里面的全部文件

    在这个场景中,开发者可能编写了一个程序,能够实现删除指定的文件夹及其包含的所有子文件和子文件夹。 在描述中提到了"代码很简单,构思严谨,功能实用",这意味着程序的源代码结构清晰,遵循了良好的编程规范,...

    qt删除文件夹内所有内容

    在Qt编程中,删除文件夹内的所有内容是一个常见的任务,涉及到文件系统操作。Qt库提供了丰富的函数和类来处理这些操作。本篇文章将详细讲解如何使用Qt实现删除文件夹内所有内容的功能,包括文件和子文件夹。 首先,...

    组合框获取文件夹内文件名称,加入到组合框中。

    实际应用中,你需要将上述逻辑与这个文件中的具体代码结合起来,以便实现完整的功能。 总结起来,这个任务涵盖了文件操作、数据库查询以及用户界面组件的使用。易语言提供了丰富的内置命令和库,使得这些操作变得...

    定时清理文件夹下的文件或文件夹

    `Directory`类提供了对目录的操作,如列举目录中的所有文件和子目录,而`File`类则用于处理单个文件,包括删除文件。以下是一个简单的示例,演示如何删除指定文件夹下的所有文件: ```csharp using System.IO; ...

    列举文件夹及子文件夹下的文件到EXCEL文件

    可以在EXCEL文件中链接目录,包含文件大小,创建日期,修改日期

    驱动层获取文件大小、遍历文件夹、创建文件

    在 IrpFile_Test 文件中,可能包含了一些示例代码或者测试用例,用于演示上述驱动层操作的具体实现。这些代码可能涵盖了IRP的处理、系统调用的模拟以及文件属性的操纵等。通过分析和理解这些代码,开发者能够更好地...

    QT文件查询,查询单个文件和文件夹下所有文件行数

    QT文件查询是一个基于Qt库开发的应用程序,它允许用户快速查询单个文件或整个文件夹下的所有文件的行数。Qt是一个跨平台的C++图形用户界面应用程序开发框架,广泛用于创建桌面、移动和嵌入式平台的应用。通过使用Qt...

    C语言 实现遍历一个文件夹的所有文件

    在C语言中,遍历一个文件夹的所有文件通常涉及到文件系统的操作。这个过程可以通过使用特定的函数来查找、列举和处理文件系统中的目录项。在给出的代码示例中,使用了Microsoft Windows API中的`_findfirst`, `_...

    Excel-VBA宏编程实例源代码-将“我的最爱”文件夹中的文件以清单形式列举出来.zip

    4. **遍历文件夹**:在这个实例中,VBA宏会用到FSO的`GetFolder`方法来获取"我的最爱"文件夹对象,然后通过`Files`集合遍历该文件夹中的所有文件。 5. **文件信息获取**:使用FSO的`File`对象,可以获取每个文件的...

    Excel-VBA宏编程实例源代码-列举文件夹内的文档名称.zip

    在"列举文件夹内的文档名称.xlsm"这个文件中,打开后会看到VBA编辑器中的模块和代码,通过调试和运行,我们可以看到实际效果。这样的宏程序对于整理和管理大量文件非常有用,尤其在办公室环境中,能够节省大量手动...

    Excel-VBA宏编程实例源代码-列举文件夹内的子文件夹名称.zip

    这个压缩包“Excel-VBA宏编程实例源代码-列举文件夹内的子文件夹名称.zip”提供了用于列举指定文件夹内所有子文件夹名称的VBA宏示例。以下是对这个实例源代码的详细解析和相关知识点的介绍: 首先,我们要理解VBA宏...

    Excel-VBA宏编程实例源代码-列举指定的文件夹中的文档(FileSearch).zip

    通过创建FileSystemObject,我们可以访问文件和文件夹,读写文件,以及列举文件夹中的内容。 2. **Folder对象和File对象**: FileSystemObject提供`GetFolder()`方法来获取一个Folder对象,代表指定路径的文件夹。...

    读取文件夹里面的压缩包文件

    例如,以下代码展示了如何打开并列举一个ZIP文件中的所有条目(文件或目录): ```csharp using (var zip = ZipFile.Read("path_to_your_zip_file.zip")) { foreach (ZipEntry entry in zip) { Console....

    C#获取指定文件夹下的所有文件夹

    摘要:C#源码,文件操作,文件夹  C#获取指定文件夹下的所有文件夹,获取...与&lt;a href="http://www.codefans.net/soft/10648.shtml" target="_blank"&gt;C# 列举指定文件夹中的所有文件,枚举文件夹是十分相似的实例小程序。

    易语言本地文件搜索(支持不同类型和不同文件夹及全盘)

    在计算机编程领域,文件搜索是一项基本且重要的功能,它使得用户能够高效地在海量文件中定位所需的目标。易语言作为一款中国本土的编程语言,提供了简单易懂的语法,让开发者可以轻松实现文件搜索功能。本文将围绕...

    目录文件列举,文件数统计

    "目录文件列举,文件数统计"这一主题涉及到在操作系统中如何列出指定目录下的所有文件,以及如何统计这些文件的数量。这个过程通常用于文件管理、数据备份、日志分析等多种应用场景。 首先,我们需要了解操作系统中...

Global site tag (gtag.js) - Google Analytics