【 Android 】利用file取得資料夾內檔案
在實作上需要取得特定目錄裡的檔案名稱以便作list使用,所以就實作了一個測試的小程式,順便作一下紀錄。
1. 先抓取要使用的資料夾路徑,並產生一個新的folder來代表實體的資料夾
ps: 這裡有一點需要注意一下,由於目前部份裝置是沒有實體sd卡的,所以在系統會預設一塊記憶當sd卡使用,所以路徑還是會指向sd卡的路徑( /storage/emulated/0/Music ),所以在系統上還必預加上讀取外部資料的權限才可以使用,不然得到的folder都會是null,導致出錯。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
1. 先抓取要使用的資料夾路徑,並產生一個新的folder來代表實體的資料夾
private File root;
root = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_MUSIC);
String path = root.getPath();
File folder = new File(path);
2. 再建一個過濾器,去過濾自已想要的檔案,就可以在list裡面看到自已需要的檔案了(如下圖)
FilenameFilter mediafilefilter = new FilenameFilter(){
//private String[] filter = {".mp3",".ogg",".3gp",".mp4"};
private String[] filter = {".mp3"};
@Override
public boolean accept(File dir, String filename) {
for(int i= 0;i< filter.length ; i++){
if(filename.indexOf(filter[i]) != -1)return true;
}
return false;
}};
File[] list = folder.listFiles(mediafilefilter);
這裡是過濾mp3檔,所以把資料夾裡的mp3檔都選出來了。
3. 若是不要過濾,需要全部的資料,就不用實作filter的部份,只需要實作一個陣列儲存所有的檔案名稱即可。
String[] list = folder.list();
for(int i = 0; i< list.length;i++){
file.add(list[i]);
}
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Jammy Casino | Slot Machines and Sports Books | JTM Hub
回覆刪除The Jammy 대전광역 출장마사지 Casino 동해 출장안마 is a new place to 오산 출장마사지 visit. Play 통영 출장마사지 at one of our 14 casinos, including over 1600 태백 출장마사지 slots, live casino games, and sports betting apps.