效果如图:
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
分享到:
相关推荐
`getExternalStorageDirectory()`方法返回SD卡的公共根目录。然后,可以使用`File`类的方法来遍历文件和目录。以下是一个简单的遍历SD卡文件的例子: ```java public void listAllFilesOnSdCard() { // 获取SD卡根...
在Android应用开发中,有时我们需要实现一个自定义的图片查看器,以便在不依赖系统相册的情况下展示本地图片资源。这种需求通常出现在我们希望提供更个性化的用户体验,或者避免因调用系统相册可能带来的权限问题。...
这款简易的资源管理器实现了基本的文件查看和操作功能,如浏览目录结构以及通过长按操作删除文件。尽管应用在功能上可能还有待完善,但它的存在为我们提供了一个了解Android平台文件系统交互的窗口。 首先,我们要...
【安卓文件查看器代码】是实现Android平台下文件系统浏览功能的应用程序源代码。这个代码设计得简单易懂,特别适合学生或初学者用来完成关于文件管理器的课程作业。通过这个代码,开发者可以学习如何在Android环境中...
在Android系统中,文件管理器是一个非常重要的工具应用,它允许用户查看、操作、组织设备上的文件和目录。本资源提供了这样一个文件管理器的源码,对于开发者来说,这是一个学习和理解Android文件系统操作的好材料。...
在安卓应用开发中,文件管理和目录查看是必不可少的功能。这个项目着重于实现用户可以在安卓设备上查看文件目录,并选择特定文件的功能,虽然未实现文件上传,但基础的浏览和选择操作已经足够为其他类似功能打下基础...
在Android中,获取外部存储(如SD卡)的根目录通常通过`Environment.getExternalStorageDirectory()`实现,然后递归遍历所有子目录以构建文件列表。 4. **权限管理**:由于Android的权限模型,文件管理器需要申请...
在Android系统中,文件管理器是一个非常重要的工具,它允许用户查看、操作和管理设备上的文件和目录。本文将深入探讨Android文件管理器的工作原理、关键组件以及如何实现一个简单的文件管理器应用。 首先,我们需要...
首先,Android文件系统主要基于Linux内核,采用的是典型的Unix风格的层次结构,根目录为"/"。Android系统中常见的文件系统类型包括ext4、F2FS(Flash-Friendly File System)等。理解这些文件系统的特性对于开发文件...
在编程方面,Android提供了`Environment`类,其中的`getExternalStorageDirectory()`方法返回的是公共外部存储的根目录,但请注意,这并不总是指向SDcard,尤其是在Android 6.0及以上版本。为获取真正的外置SDcard...
Android基于Linux内核,因此其文件系统遵循标准的Linux文件系统布局,包括根目录、data分区、缓存分区等。文件管理器需要能够遍历这些分区,并提供对内部存储和外部SD卡的访问。 源码中的关键组件之一是文件树的...
对于外部存储(如`sdcard`),需要使用`Environment.getExternalStorageDirectory()`获取根目录,并通过相对路径访问特定文件。 3. **文件遍历**:实现文件浏览功能,首先需要遍历指定目录下的所有文件。可以使用`...
首先,Android文件系统基于Linux,采用的是典型的树状层次结构,根目录为"/"。常见的目录如/data用于存储应用程序数据,/sdcard(或/mnt/sdcard)代表外部存储,用户可以在这里访问和管理文件。源代码中会涉及对这些...
1. `Environment.getExternalStorageDirectory()`可获取到外部存储的根目录,但自Android 7.0(API级别24)起,可能返回内部存储的公共目录。 2. 使用`getExternalFilesDir()`或`getExternalCacheDir()`方法获取应用...
1. **文件系统访问**:Android系统基于Linux内核,因此其文件系统遵循Unix-like结构,包括根目录 `/`、系统文件、用户数据等。文件管理器需要能够遍历这些目录,使用`java.io.File`类来创建、读取、删除和重命名文件...
该阅读器采用遍历算法来检索文件夹中的图片资源,以便用户可以轻松访问和浏览全景图像。同时,它利用EKF(Extended Kalman Filter)算法处理传感器数据,以获取Android设备的运动姿态,使得用户在移动设备上也能体验...
Android文件系统的根目录是"/",它包含了多个主要的目录,每个目录都有其特定的功能和用途。 1. **/data** 目录:这是Android系统中最核心的部分,存储着应用程序的数据、设置和缓存。每个应用程序都有一个属于自己...
文件主要存放在根目录下的一系列子目录中,例如 `/data`、`/mnt` 和 `/sdcard`(或 `/storage/emulated/0`)。`/sdcard` 是用户可以访问的公共存储区域,通常用来存放应用数据和媒体文件。 二、文件操作 1. 文件...
源码中,开发者可能使用`Environment.getExternalStorageDirectory()`方法获取到SD卡的根目录,然后递归遍历文件和目录,构建出文件系统的树形结构。 其次,UI设计是用户与应用交互的关键。在Android中,我们通常...
在源码中,开发者可能会使用`Context.openFileInput()`和`Context.openFileOutput()`方法来操作内部存储的文件,而外部存储(如SD卡)则通常通过`Environment.getExternalStorageDirectory()`获取根目录。...