Body">
最近因为比较忙,好几天没有写博客了,正好现在正在弄上传文件,当时想怎么能实现fileDialog的功能呢,打开文件,浏览文件,然后选择文件呢,查了好多资料,也看了不少论坛,都说里面没有这个功能,那真是奇怪了,里面没有这个功能,当然就需要自己动手添加这个功能了。
首先说一下这个文件浏览的简单实现原理:
首先选择一个目录做为根目录,然后打开此目录,常用的就是使用File这个类了,如下:
File file=new File(path);
然后可以通过获取到此目录下所有文件及文件夹的列表:
如下:
File[] files = file.listFiles();
然后再根据根据得到的文件,来判断是文件夹还是文件,如果是文件夹,那么我们就将文件夹添加到列表中,如果是文件那么就把文件添加到列表中进行显示,如果需要显示图标的话,那么就需要根据文件的后缀,设置不同的图标了。我是在ListView中进行显示的。
基本代码如下:
代码
for(File currentFile : files)
{//判断是一个文件夹还是一个文件if(currentFile.isDirectory())
{
currentIcon=getResources().getDrawable(R.drawable.folder);
}else{//取得文件名String fileName=currentFile.getName();//根据文件名来判断文件类型,设置不同的图标if(checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingImage)))
{
currentIcon=getResources().getDrawable(R.drawable.image);
}elseif(checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingWebText)))
{
currentIcon=getResources().getDrawable(R.drawable.webtext);
}elseif(checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingPackage)))
{
currentIcon=getResources().getDrawable(R.drawable.packed);
}elseif(checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingAudio)))
{
currentIcon=getResources().getDrawable(R.drawable.audio);
}elseif(checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingVideo)))
{
currentIcon=getResources().getDrawable(R.drawable.video);
}else{
currentIcon