EnvironmentgetExternalStorageDirectory()+目录 遍历上面目录就OK了。
注意是文件夹,比如我要获取视频文件夹,就是获取整个sd卡含有视频文件的文件夹,之所以想做这个,是因为MX player就是这样设计的,感觉还不错。
现在就是怎么获取含有视频或者音乐文件的文件夹,比如:
点击音乐按钮就获取所有含有音乐的文件夹
点击视频按钮就获取所有含有视频的文件夹
数据库中的文件的话,要adb shell进去查看数据库有没有该字段。存储卡上的文件的话,java中没有获取文件创建事件的接口。
一、 从resource中的raw文件夹中获取文件并读取数据(资源文件只能读不能写)
String res = "";
try{
InputStream in = getResources()openRawResource(Rrawbbi);
//在\Test\res\raw\bbitxt,
int length = inavailable();
byte [] buffer = new byte[length];
inread(buffer);
//res = EncodingUtilsgetString(buffer, "UTF-8");
//res = EncodingUtilsgetString(buffer, "UNICODE");
res = EncodingUtilsgetString(buffer, "BIG5");
//依bbitxt的编码类型选择合适的编码,如果不调整会乱码
inclose();
}catch(Exception e){
eprintStackTrace();
}
myTextViewsetText(res);//把得到的内容显示在TextView上
二、 从asset中获取文件并读取数据(资源文件只能读不能写)
String fileName = "yantxt"; //文件名字
String res="";
try{
InputStream in = getResources()getAssets()open(fileName);
// \Test\assets\yantxt这里有这样的文件存在
int length = inavailable();
byte [] buffer = new byte[length];
inread(buffer);
res = EncodingUtilsgetString(buffer, "UTF-8");
}catch(Exception e){
eprintStackTrace();
}
三、 从sdcard中去读文件,首先要把文件通过\android-sdk-windows\tools\adbexe把本地计算机上的文件copy到sdcard上去,adbexe push e:/Ytxt /sdcard/, 不可以用adbexe push e:\Ytxt \sdcard\ 同样: 把仿真器上的文件copy到本地计算机上用: adb pull /data/data/comtt/files/Testtxt e:/
String fileName = "/sdcard/Ytxt";
//也可以用String fileName = "mnt/sdcard/Ytxt";
String res="";
try{
FileInputStream fin = new FileInputStream(fileName);
//FileInputStream fin = openFileInput(fileName);
//用这个就不行了,必须用FileInputStream
int length = finavailable();
byte [] buffer = new byte[length];
finread(buffer);
res = EncodingUtilsgetString(buffer, "UTF-8");
finclose();
}catch(Exception e){
eprintStackTrace();
}
myTextViewsetText(res);
您好,Android的res文件夹是用来存储资源的,可以在res文件夹下建立一个raw文件夹,放置在raw文件夹下的内容会被原样打包,而不会被编译成二进制文件,并且可以通过R文件进行很方便地访问。
比如我们可以将更新信息、版权信息等放到txt文件中,然后放到raw文件中,然后很方便地进行访问。
在raw中放入一个atxt文件,然后就可以在Activity中使用getResources()openRawResource(Rrawa);方法获取一个此文件的InputStream类,而后就可以很方便地进行读写atxt了。
可以通过BufferedReader 流的形式进行流读取,之后通过readLine方法获取到读取的内容。
BufferedReader bre = null;
try {
String file = "D:/test/testtxt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = brereadLine())!= null) // 判断最后一行不存在,为空结束循环
{
Systemoutprintln(str);//原样输出读到的内容
};
备注: 流用完之后必须close掉,如上面的就应该是:breclose(),否则bre流会一直存在,直到程序运行结束。
这个是由于android中的安全机制的缘故,由于android继承了Linux系统的传统,对于某个特定的目录有用户的权限,一共分为三种--可读,可写,可执行;虽然说可以设置某个特定的目录的权限,但是对于目录里面的子目录和子文件都可以进行权限的设置,也就是说出了根目录权限之外,子目录本身的权限也决定了子目录可否访问,这一点需要清楚了解,所以在判断完了是否是目录之外,还需要在进行listFiles()获取File[]数据后判断获取的数组是否为空,如果为空的话,文件夹是不可访问的。
你的这个文件是不是存在手机的内存卡里面呢,如果是可以这样做
//首先获取到手机内存卡的根路径
String rootPath = EnvironmentgetExternalStorageDirectory()getPath();
File file = new File(rootPath + "/atxt"); //假设文件就在内存卡的根目录下
得到file对象之后就跟Java一样处理了
以上就是关于android 怎么获取所有含有音频文件的文件夹全部的内容,包括:android 怎么获取所有含有音频文件的文件夹、在android中怎么获取文件的创建时间、android读取txt文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)