扫描文件及文件夹

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扫描文件的更多相关文章

  1. Android之扫描文件或文件夹

    我们或许经常会遇到这种情况,明明保存了图片,但是当你打开图片时,却没有找到这张图片,手机重启之后才能看到.这是因为SD卡并没有重新挂载,图库也无法把这张图片加载进去,解决这个问题非常简单,只需要我们重 ...

  2. Android.mk 文件语法详解

    0. Android.mk简介: Android.mk文件用来告知NDK Build 系统关于Source的信息. Android.mk将是GNU Makefile的一部分,且将被Build Syst ...

  3. Android根据文件路径使用File类获取文件相关信息

    Android通过文件路径如何得到文件相关信息,如 文件名称,文件大小,创建时间,文件的相对路径,文件的绝对路径等: 如图: 代码: public class MainActivity extends ...

  4. Android资源文件简介

    Android资源文件简介 1. Android应用资源的作用 (1) Android项目中文件分类 在Android工程中, 文件主要分为下面几类 : 界面布局文件, Java src源文件, 资源 ...

  5. 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

    1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...

  6. android 获取文件夹、文件的大小 以B、KB、MB、GB 为单位

    android 获取文件夹.文件的大小 以B.KB.MB.GB 为单位   public class FileSizeUtil { public static final int SIZETYPE_B ...

  7. 19.Android之文件存储方法学习

    Android开发中会用到文件存储,今天来学习下. 先改下布局界面: <?xml version="1.0" encoding="utf-8"?> ...

  8. cocos2d-x避免手动修改android.mk文件来编译

    编辑android.mk文件,替换为如下内容 LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir) include $(CLEAR_VAR ...

  9. Android 下载文件及写入SD卡

    Android 下载文件及写入SD卡,实例代码 <?xml version="1.0" encoding="utf-8"?> <LinearL ...

随机推荐

  1. 【转】github更新自己Fork的代码

    github更新自己Fork的代码 时间 2014-03-02 23:25:55  micmiu - 软件开发 原文  http://www.micmiu.com/software/build/git ...

  2. 忘记Mysql的root密码的处理办法

    1,停止MYSQL服务,CMD打开DOS窗口,输入 net stop mysql 2,在CMD命令行窗口,进入MYSQL安装目录 比如E:\Program Files\MySQL\MySQL Serv ...

  3. 浅谈Java回调机制

    像许多网上介绍回调机制的文章一样,我这里也以一个现实的例子开头:假设你公司的总经理出差前需要你帮他办件事情,这件事情你需要花些时间去做,这时候总经理肯定不能守着你做完再出差吧,于是就他告诉你他的手机号 ...

  4. LeetCode Meeting Rooms

    原题链接在这里:https://leetcode.com/problems/meeting-rooms/ Given an array of meeting time intervals consis ...

  5. SQL Server Logical/Physical Reads

    Summary Info: Logical Reads :    Reading Data pages from CachePhysical Reads :    Reading Data pages ...

  6. Virtio:针对 Linux 的 I/O 虚拟化框架

    Virtio:针对 Linux 的 I/O 虚拟化框架 --http://www.ibm.com/developerworks/cn/linux/l-virtio/#ibm-pcon 使用 KVM 和 ...

  7. 团队冲刺the second day

    今天是我们的团队冲刺的第二天,由于我的电脑出现了一点问题,系统还原了,我有重新配置了一下环境变量和一些eclipse的问题,导致时间浪费了很多,但是我还是做了一些简单的任务,例如编写节日的页面的布局, ...

  8. meizu mx4 usb调试

    meizu mx4 打开 USB 调试模式 连接手机 连接 usb 调试前,要确定调试模式已打开 在 设置 -> 辅助功能 -> 开发者选项 -> USB 调试 上打开 USB 调试 ...

  9. laravel-v4.0.9

  10. 安装和删除 Alcatraz 插件

    在终端下输入如下命令来安装Alcatraz: curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install. ...