有没有一种简单的方法来读取一个特定文件夹中的所有* .png文件?

时间:2012-05-24 14:04:13

标签: android file listview android-arrayadapter

我已经找到了很多方法可以做到这一点,但它们都不简单(我无法实现更复杂的方法,所以我正在寻找一个更简单的解决方案)。我想用我的目标中的所有png文件的名称填充我的ArrayAdapter,用于从应用程序中保存一些png。 这个很棒:http://www.dreamincode.net/forums/topic/190013-creating-simple-file-chooser/ 但并不容易。我相信有一种更简单的方法,我找不到它(我真的做了我的功课,并且正在寻找它很长一段时间)。我假设像File.listFiles()这样的东西可以工作,我只是不知道如何。

我的代码:

    public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);

    String[] values = new String[] ;

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values);
    setListAdapter(adapter);
    getListView().setBackgroundDrawable(getResources().getDrawable(R.drawable.diver));
}

@Override

protected void onListItemClick(ListView list, View v, int position, long id) {
    list.setBackgroundDrawable(getResources().getDrawable(R.drawable.diver));
    String item = (String) getListAdapter().getItem(position);

    setContentView(R.layout.table);
    myWebView = (WebView)findViewById(R.id.myWebView);
    myWebView.setInitialScale(50);
    myWebView.getSettings().setBuiltInZoomControls(true);
    myWebView.loadUrl(Environment.getExternalStorageDirectory()+ File.separator + "DivePlanner" + File.separator + item);


}

我需要用目录/ sdcard / DivePlanner /中所有png文件的名称填充values []。如果有人知道任何简单的方法,那么非常感谢!!

2 个答案:

答案 0 :(得分:2)

是的,您应该使用File.listFiles()方法从所需的文件夹中获取所有文件。当你有一个文件数组时,你应该简单地遍历它,并从每个文件中检索它的名字。

如果只需要.png文件,请检查java FileFilter类及其用法

为了您的便利,请看这里:

http://www.exampledepot.com/egs/java.io/GetFiles.html

答案 1 :(得分:0)

您可以使用以下内容:

final File directory = new File(path);
if(!directory.exists() || !directory.isDirectory()){
    //do something
}
final Collection<String> pngFilenames = new HashSet<String>();
for(final String filename : directory.list()){
    if(filename.endsWith(".png")){
        pngFilenames.add(filename);
    }
}
final String[] values = (String[])pngFilenames.toArray(new String[pngFilenames.size()]);