Android扫描文件
扫描文件及文件夹

package com.bwie.demo; import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.List; public class Demo { private static ArrayList<String> list1;
private static ArrayList<String> list2; /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub list1 = new ArrayList<String>();
list2 = new ArrayList<String>();
File file = new File("E:\\安装包");
init(file); for (String string : list1) { System.out.println("文件:"+string);
}
for (String string : list2) {
System.out.println("文件夹:"+string);
} System.out.println("文件个数:"+list1.size()+" 文件夹个数:"+list2.size());
} private static void init(File file) {
if (file.exists()) { File[] filepath = file.listFiles(new FileFilter() { public boolean accept(File file) {
// TODO Auto-generated method stub if (file.isDirectory()) {
list2.add(file.getName());
return true;
} else {
// 文件
list1.add(file.getName());
return true;
}
}
});
if (filepath != null) {
for (File file2 : filepath) { if (file2.isFile()) {
list1.add(file2.getName());
} else {
init(file2);
}
}
}
} else {
System.out.println("没有此盘");
}
} }

扫描图片

import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.List; public class du {
private static List<File> list; public static void main(String[] args) {
File file=new File("c:\\");
setData(file);;
} private static void setData(File file) {
list = new ArrayList<File>();
File[] fs=file.listFiles(new FileFilter() { public boolean accept(File pathname) {
// TODO Auto-generated method stub
if(pathname.isDirectory()){
return true;
}else{
String name = pathname.getName();
return (name.endsWith(".png")||name.endsWith(".jpg")||name.endsWith(".bmp"));
} }
});
if(fs!=null){
for(File f:fs){
if(f.isFile()){
list.add(f);
System.out.println(list.toString());
}else{
setData(f);
}
}
} }
}

扫描视频歌曲

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.ArrayList; import com.bwie.adapter.MyAdapter; import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
import android.widget.ListView;
import android.widget.MediaController;
import android.widget.VideoView; public class MainActivity extends Activity { private static ArrayList<File> list;
private ListView lv;
private VideoView vv; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); /*// 找到该布局文件下的控件
lv = (ListView) findViewById(R.id.lv);*/ //找到该布局文件下的播放视频的控件
vv = (VideoView) findViewById(R.id.vv); // 创建file类
String path = Environment.getExternalStorageDirectory().getPath();
/* File file = new File(path+"/images"); */ //这是扫描图片的路径
/*File file = new File(path);*/ //这是扫描歌曲的路径
File file = new File(path);//这是扫描视屏的路径 // 创建集合对象
list = new ArrayList<File>(); // 调用方法进行扫描并过滤该文件夹,并收集扫描出来的图片文件
saoMiao(file); // 打印扫描出来的图片文件
for (File ff : list) {
System.out.println(ff.getName());
} /*
* //为listview设置适配器 lv.setAdapter(new MyAdapter(MainActivity.this,
* list));
*/ /**
* 播放扫描出来的歌曲
*/
/* MediaPlayer player = new MediaPlayer();
try {
// 获取路径
System.out.println(list.get(0).getPath() + "===========");
player.setDataSource(list.get(1).getPath());// 直接获取文件的路径
// 准备好硬件
player.prepare();
// 开始播放
player.start();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/ /**
* 播放视频
*/
//设置播放视频的路径
vv.setVideoPath(list.get(0).getPath());
//为videoview设置控制器
MediaController controller = new MediaController(MainActivity.this);
vv.setMediaController(controller);
//开始播放视频
vv.start(); } private static void saoMiao(File file) { // 列出该文件夹下的所有文件及文件夹
File[] fs = file.listFiles(new FileFilter() { public boolean accept(File pathname) { if (pathname.isDirectory())// 如果是文件夹的话就直接收集这个文件夹
{
return true;
} else {
/*
* return pathname.getName().endsWith(".png") ||
* pathname.getName().endsWith(".jpg") ||
* pathname.getName().endsWith(".bmp");
*/
/* return pathname.getName().endsWith(".mp3"); */ return pathname.getName().endsWith(".3gp"); } }
}); // 将集合进行遍历
if (fs != null) {
for (File f : fs) {
if (f.isFile())// 若是文件就直接收藏起来
{
list.add(f);
} else {// 若是文件夹的话利用递归的方法进行再次扫描文件夹 saoMiao(f);
} }
} } }
Android扫描文件的更多相关文章
- Android之扫描文件或文件夹
我们或许经常会遇到这种情况,明明保存了图片,但是当你打开图片时,却没有找到这张图片,手机重启之后才能看到.这是因为SD卡并没有重新挂载,图库也无法把这张图片加载进去,解决这个问题非常简单,只需要我们重 ...
- Android.mk 文件语法详解
0. Android.mk简介: Android.mk文件用来告知NDK Build 系统关于Source的信息. Android.mk将是GNU Makefile的一部分,且将被Build Syst ...
- Android根据文件路径使用File类获取文件相关信息
Android通过文件路径如何得到文件相关信息,如 文件名称,文件大小,创建时间,文件的相对路径,文件的绝对路径等: 如图: 代码: public class MainActivity extends ...
- Android资源文件简介
Android资源文件简介 1. Android应用资源的作用 (1) Android项目中文件分类 在Android工程中, 文件主要分为下面几类 : 界面布局文件, Java src源文件, 资源 ...
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...
- android 获取文件夹、文件的大小 以B、KB、MB、GB 为单位
android 获取文件夹.文件的大小 以B.KB.MB.GB 为单位 public class FileSizeUtil { public static final int SIZETYPE_B ...
- 19.Android之文件存储方法学习
Android开发中会用到文件存储,今天来学习下. 先改下布局界面: <?xml version="1.0" encoding="utf-8"?> ...
- cocos2d-x避免手动修改android.mk文件来编译
编辑android.mk文件,替换为如下内容 LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir) include $(CLEAR_VAR ...
- Android 下载文件及写入SD卡
Android 下载文件及写入SD卡,实例代码 <?xml version="1.0" encoding="utf-8"?> <LinearL ...
随机推荐
- ubuntu12.04进入单用户模式
更改ubuntu配置文件出错了,只能进入单用户模式改回来. 转载至: http://blog.csdn.net/lfyaa/article/details/9899497 1.重启ubuntu,VMw ...
- Redis实现分布式锁
http://redis.io/topics/distlock 在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段. 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但 ...
- 如何安装sass
1.安装ruby 2. 运行ruby时输入 gem install 及sass安装文件路径. sass安装文件见文件.
- .emacs
(tool-bar-mode 0)(menu-bar-mode 0)(blink-cursor-mode 0);;(set-scroll-bar-mode nil);;(global-linum-mo ...
- Unofficial Windows Binaries for Python Extension Packages
http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
- javascript设计模式学习之三—闭包和高阶函数
一.闭包 闭包某种程度上就是函数的内部函数,可以引用外部函数的局部变量.当外部函数退出后,如果内部函数依旧能被访问到,那么内部函数所引用的外部函数的局部变量就也没有消失,该局部变量的生存周期就被延续. ...
- UIKit结构图
- iOS -Swift 3.0 -UIButton属性大全
// // ViewController.swift // Swift-UIButton // // Created by luorende on 16/9/9. // Copyright © ...
- 关键字 self
self 总是指向调用方法的对象. self总是代表当前类的对象.当它出现在某个方法体中时,它所代表的对象是不确定的,但它的类型是确定的,它所代表的是当前类的实例对象: 当这个方法被调用时,它所代表的 ...
- Process启动.exe,当.exe内部抛出异常时,总会弹出一个错误提示框,阻止Process进入结束
public class TaskProcess { [DllImport("kernel32.dll", SetLastError = true)] public static ...