gpt4 book ai didi

java - 将 `File[]` 转换为 `List` 的更好方法

转载 作者:行者123 更新时间:2023-12-02 07:57:27 25 4
gpt4 key购买 nike

我正在尝试通过 ListAdapter 列出 sdcard 中的所有文件夹。但我收到运行时异常@ item.add(file.getName() + "/"); 。有没有更好的转换方法File[]List<String>

private List <String>        item    = null;

String extState = Environment.getExternalStorageState();
if (!extState.equals(Environment.MEDIA_MOUNTED)) {
....
} else {
File sd = Environment.getExternalStorageDirectory();
FileFilter filterDirectoriesOnly = new FileFilter() {
public boolean accept(File file) {
return file.isDirectory();
}
};
File[] sdDirectories = sd.listFiles(filterDirectoriesOnly);
for (int i = 0; i < sdDirectories.length; i++) {
File file = sdDirectories[i];
item.add(file.getName() + "/");
}
ArrayAdapter <String> fileList = new ArrayAdapter <String>(this, R.layout.row, item);
setListAdapter(fileList);
}

最佳答案

您可以通过使用增强的 for 循环使其变得更短:

File[] sdDirectories = sd.listFiles(filterDirectoriesOnly);
for (File file : sdDirectories)
{
item.add(file.getName() + "/");
}

有一个method to get file names directly ,但它们不会有您的尾随 /,并且您必须能够按文件名进行过滤:

String[] fileNames = sd.list(fileNameFilter);
List<String> fileNamesList = Arrays.asList(fileNames);

关于java - 将 `File[]` 转换为 `List<String>` 的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9425599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com