首先說一下這個文件瀏覽的簡單實現(xiàn)原理:
首先選擇一個目錄做為根目錄,然后打開此目錄,常用的就是使用File這個類了,如下:
File file=new File(path);
然后可以通過獲取到此目錄下所有文件及文件夾的列表:
如下:
File[] files = file.listFiles();
然后再根據(jù)根據(jù)得到的文件,來判斷是文件夾還是文件,如果是文件夾,那么我們就將文件夾添加到列表中,如果是文件那么就把文件添加到列表中進(jìn)行顯示,如果需要顯示圖標(biāo)的話,那么就需要根據(jù)文件的后綴,設(shè)置不同的圖標(biāo)了。我是在ListView中進(jìn)行顯示的。
基本代碼如下:
for (File currentFile : files)
{
//判斷是一個文件夾還是一個文件
if (currentFile.isDirectory())
{
currentIcon = getResources().getDrawable(R.drawable.folder);
}
else
{
//取得文件名
String fileName = currentFile.getName();
//根據(jù)文件名來判斷文件類型,設(shè)置不同的圖標(biāo)
if (checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingImage)))
{
currentIcon = getResources().getDrawable(R.drawable.image);
}
else if (checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingWebText)))
{
currentIcon = getResources().getDrawable(R.drawable.webtext);
}
else if (checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingPackage)))
{
currentIcon = getResources().getDrawable(R.drawable.packed);
}
else if (checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingAudio)))
{
currentIcon = getResources().getDrawable(R.drawable.audio);
}
else if (checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingVideo)))
{
currentIcon = getResources().getDrawable(R.drawable.video);
}
else
{
currentIcon = getResources().getDrawable(R.drawable.text);
}
}
下面是根據(jù)后綴對文件的類型進(jìn)行的判斷:
//通過文件名判斷是什么類型的文件
private boolean checkEndsWithInStringArray(String checkItsEnd,
String[] fileEndings)
{
for(String aEnd : fileEndings)
{
if(checkItsEnd.endsWith(aEnd))
return true;
}
return false;
}
那么這樣我們就可以顯示出來帶圖標(biāo)的列表了,現(xiàn)在到了如果打開子目錄的介紹了,首先對Listview添加點擊事件,在點擊之后,我們根據(jù)點擊的內(nèi)容進(jìn)行判斷,判斷是文件還是文件夾,如果是文件夾,那么再次調(diào)用顯示,并且將以前顯示的內(nèi)容清空即可,顯示出來,如果是文件的話,那么這個根據(jù)我們的需要進(jìn)行操作:如打開、選擇等等操作了。
上面所寫的就是關(guān)于如何自己做一個文件瀏覽器,而且在這里還可以根據(jù)不同的使用地方,讓其顯示特定的文件。這個需要讀者在自己的使用中自己慢慢熟悉與摸索了!
這個Listview也是根據(jù)自己的需要進(jìn)行了布局,相信通過學(xué)習(xí)這一篇文章,你肯定會以File及ListView的使用有一個了解,也希望做出自己實用的文件瀏覽器!