Android如何获取文件列表
2011-03-16 00:00
573 查看
有的时候我们的程序需要去对android的指定目录或者全局目录进行遍历获取其中的文件,但是获取文件的时候可能会遇到无法列出文件夹中的文件的问题,这就是我出现的问题,对于某个子文件夹进行获取listFiles()的时候返回为NULL,也就是不允许列出文件夹中内容。这个是由于android中的安全机制的缘故,由于android继承了Linux系统的传统,对于某个特定的目录有用户的权限,一共分为三种--可读,可写,可执行;虽然说我们可以设置某个特定的目录的权限,但是对于目录里面的子目录和子文件都可以进行权限的设置,也就是说出了根目录权限之外,子目录本身的权限也决定了子目录可否访问,这一点我们需要清楚了解,所以我们在判断完了是否是目录之外,我们还需要在进行listFiles()获取File[]数据后判断获取的数组是否为空,如果为空的话,文件夹是不可访问的。样例代码如下:
package net.nowamagic.file; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import android.util.Log; /** * @author * function 用于扫描SD卡上的文件 * */ public class FileScan { private static final String TAG = "FileScan"; public HashMap<String, String> getMusicListOnSys(File file) { //从根目录开始扫描 Log.i(TAG, file.getPath()); HashMap<String, String> fileList = new HashMap<String, String>(); getFileList(file, fileList); return fileList; } /** * @param path * @param fileList * 注意的是并不是所有的文件夹都可以进行读取的,权限问题 */ private void getFileList(File path, HashMap<String, String> fileList){ //如果是文件夹的话 if(path.isDirectory()){ //返回文件夹中有的数据 File[] files = path.listFiles(); //先判断下有没有权限,如果没有权限的话,就不执行了 if(null == files) return; for(int i = 0; i < files.length; i++){ getFileList(files[i], fileList); } } //如果是文件的话直接加入 else{ Log.i(TAG, path.getAbsolutePath()); //进行文件的处理 String filePath = path.getAbsolutePath(); //文件名 String fileName = filePath.substring(filePath.lastIndexOf("/")+1); //添加 fileList.put(fileName, filePath); } } }
相关文章推荐
- 【Android开发经验】如何获取媒体库中所有音频文件信息,并在文件增删后及时更新媒体库(转)
- Android如何通过URI获取文件路径示例代码
- 【Android开发经验】如何获取媒体库中所有音频文件信息,并在文件增删后及时更新媒体库
- Android平台中应该如何获取音乐文件的信息
- android播放器如何获取音乐文件信息
- Android如何获取assets或者raw目录的视频文件路径播放视频
- Android中如何获取系统应用程序列表与AndroidManifest.xml信息
- Android中如何获取视频文件的缩略图
- Android中如何获取视频文件的截图、缩略图
- android中如何获取文件的路径总结
- android 如何获取 assets 下文件的路径
- 如何反编译Android的Apk文件获取其代码和资源文件
- Android中如何获取视频文件的缩略图
- 【转载】C#如何操控FTP,获取FTP文件或文件夹列表,获取FTP文件大小,FTP上传,FTP删除文件,FTP新建文件夹、删除文件夹
- python中如何获取文件列表
- android开发—如何获取内部储存中的文件路径
- Android中如何获取视频文件的缩略图
- 如何获取android里tombstone文件
- Android 如何完整的获取到用户已安装应用列表
- Android如何获取开机启动项列表