`

遍历android根目录的简单资源查看器

 
阅读更多

效果如图:

package com.txl.sua;

import java.io.File;
import java.util.List;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class FileListAdapter extends ArrayAdapter<File> {

	public FileListAdapter(Context context, int Resource, List<File> objects) {
		super(context, Resource, objects);
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		TextView view = (TextView) super.getView(position, convertView, parent);
		File file = getItem(position);
		if (position == 0)
			view.setText(view.getResources().getString(R.string.current_folder)
					+ file.getAbsolutePath());
		else if (position == 1 && !isRoot())
			view.setText(R.string.to_parent_folder);
		else
			view.setText(file.getName());
		return view;
	}

	public boolean isRoot() {
		return getItem(0).getParent() == null;
	}

}

 

package com.txl.sua;

import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.List;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ListView;

public class SearchUpdateApkActivity extends ListActivity {

	private FileListAdapter fileList;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		fill(new File("/"));
	}

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_BACK && !fileList.isRoot()) {
			fill(fileList.getItem(1));
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}

	@Override
	protected void onListItemClick(ListView l, View v, int position, long id) {
		File file = fileList.getItem(position);
		if (file.isDirectory())
			fill(file);
	}

	private static final FileFilter IMAGES_FILTER = new FileFilter() {
		public boolean accept(File file) {
			return file.isDirectory()
					|| file.getName().matches("^*.*$");// ("^.*?\\.(jpg|png|bmp|gif)$")
		}
	};

	private void fill(File folder) {
		List<File> files = new ArrayList<File>();
		files.add(folder);
		if (folder.getParentFile() != null)
			files.add(folder.getParentFile());

		for (File file : folder.listFiles(IMAGES_FILTER)) {
			files.add(file);
		}

		fileList = new FileListAdapter(this, R.layout.file_row, files);
		setListAdapter(fileList);
	}
}

 

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />
  • 大小: 24.8 KB
分享到:
评论

相关推荐

    遍历SD卡文件

    `getExternalStorageDirectory()`方法返回SD卡的公共根目录。然后,可以使用`File`类的方法来遍历文件和目录。以下是一个简单的遍历SD卡文件的例子: ```java public void listAllFilesOnSdCard() { // 获取SD卡根...

    android 图片查看器 不调用系统的相册功能

    在Android应用开发中,有时我们需要实现一个自定义的图片查看器,以便在不依赖系统相册的情况下展示本地图片资源。这种需求通常出现在我们希望提供更个性化的用户体验,或者避免因调用系统相册可能带来的权限问题。...

    android 小型资源管理器

    这款简易的资源管理器实现了基本的文件查看和操作功能,如浏览目录结构以及通过长按操作删除文件。尽管应用在功能上可能还有待完善,但它的存在为我们提供了一个了解Android平台文件系统交互的窗口。 首先,我们要...

    安卓文件查看器代码

    【安卓文件查看器代码】是实现Android平台下文件系统浏览功能的应用程序源代码。这个代码设计得简单易懂,特别适合学生或初学者用来完成关于文件管理器的课程作业。通过这个代码,开发者可以学习如何在Android环境中...

    Android代码-文件管理器源码.zip

    在Android系统中,文件管理器是一个非常重要的工具应用,它允许用户查看、操作、组织设备上的文件和目录。本资源提供了这样一个文件管理器的源码,对于开发者来说,这是一个学习和理解Android文件系统操作的好材料。...

    android目录查看,文件选择到文本框

    在安卓应用开发中,文件管理和目录查看是必不可少的功能。这个项目着重于实现用户可以在安卓设备上查看文件目录,并选择特定文件的功能,虽然未实现文件上传,但基础的浏览和选择操作已经足够为其他类似功能打下基础...

    android文件管理器

    在Android中,获取外部存储(如SD卡)的根目录通常通过`Environment.getExternalStorageDirectory()`实现,然后递归遍历所有子目录以构建文件列表。 4. **权限管理**:由于Android的权限模型,文件管理器需要申请...

    [转]Android文件管理器介绍

    在Android系统中,文件管理器是一个非常重要的工具,它允许用户查看、操作和管理设备上的文件和目录。本文将深入探讨Android文件管理器的工作原理、关键组件以及如何实现一个简单的文件管理器应用。 首先,我们需要...

    Android源码——文件管理器.zip

    首先,Android文件系统主要基于Linux内核,采用的是典型的Unix风格的层次结构,根目录为"/"。Android系统中常见的文件系统类型包括ext4、F2FS(Flash-Friendly File System)等。理解这些文件系统的特性对于开发文件...

    FileManager_android_

    Android基于Linux内核,因此其文件系统遵循标准的Linux文件系统布局,包括根目录、data分区、缓存分区等。文件管理器需要能够遍历这些分区,并提供对内部存储和外部SD卡的访问。 源码中的关键组件之一是文件树的...

    android实现简单的文件浏览

    对于外部存储(如`sdcard`),需要使用`Environment.getExternalStorageDirectory()`获取根目录,并通过相对路径访问特定文件。 3. **文件遍历**:实现文件浏览功能,首先需要遍历指定目录下的所有文件。可以使用`...

    Android文件管理器源代码

    首先,Android文件系统基于Linux,采用的是典型的树状层次结构,根目录为"/"。常见的目录如/data用于存储应用程序数据,/sdcard(或/mnt/sdcard)代表外部存储,用户可以在这里访问和管理文件。源代码中会涉及对这些...

    android 查看文件夹及文件夹内容

    1. `Environment.getExternalStorageDirectory()`可获取到外部存储的根目录,但自Android 7.0(API级别24)起,可能返回内部存储的公共目录。 2. 使用`getExternalFilesDir()`或`getExternalCacheDir()`方法获取应用...

    android 文件管理器

    1. **文件系统访问**:Android系统基于Linux内核,因此其文件系统遵循Unix-like结构,包括根目录 `/`、系统文件、用户数据等。文件管理器需要能够遍历这些目录,使用`java.io.File`类来创建、读取、删除和重命名文件...

    基于Android平台全景图片阅读器的设计与实现.pdf

    该阅读器采用遍历算法来检索文件夹中的图片资源,以便用户可以轻松访问和浏览全景图像。同时,它利用EKF(Extended Kalman Filter)算法处理传感器数据,以获取Android设备的运动姿态,使得用户在移动设备上也能体验...

    android树形文件结构

    Android文件系统的根目录是"/",它包含了多个主要的目录,每个目录都有其特定的功能和用途。 1. **/data** 目录:这是Android系统中最核心的部分,存储着应用程序的数据、设置和缓存。每个应用程序都有一个属于自己...

    androidFileManager_androidFileManager_android_

    文件主要存放在根目录下的一系列子目录中,例如 `/data`、`/mnt` 和 `/sdcard`(或 `/storage/emulated/0`)。`/sdcard` 是用户可以访问的公共存储区域,通常用来存放应用数据和媒体文件。 二、文件操作 1. 文件...

    Android安卓经典设计例程源代码-SDFileExplorerSample.rar

    源码中,开发者可能使用`Environment.getExternalStorageDirectory()`方法获取到SD卡的根目录,然后递归遍历文件和目录,构建出文件系统的树形结构。 其次,UI设计是用户与应用交互的关键。在Android中,我们通常...

    android文件管理源码

    在源码中,开发者可能会使用`Context.openFileInput()`和`Context.openFileOutput()`方法来操作内部存储的文件,而外部存储(如SD卡)则通常通过`Environment.getExternalStorageDirectory()`获取根目录。...

Global site tag (gtag.js) - Google Analytics