gpt4 book ai didi

java - 如何查找 Android 设备中的所有文件并将它们放入列表中?

转载 作者:行者123 更新时间:2023-11-29 07:54:11 25 4
gpt4 key购买 nike

我寻求帮助以列出 Android 外部存储设备中的所有文件。我想查找所有文件夹,包括主文件夹的子文件夹。有什么办法吗?

我已经做了一个基础的,但我仍然没有得到想要的结果。它不起作用。

这是我的代码:

File[] files_array;
files_array = new File(Environment.getExternalStorageDirectory().getAbsolutePath()).listFiles();

此方法返回 0 大小。什么事?这是我的 Activity :

public class Main extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
List<File> files = getListFiles(Environment.getExternalStorageDirectory());
setListAdapter(new ArrayAdapter<File>(Main.this, android.R.layout.simple_list_item_1, files));
Toast.makeText(this, "" + files.size(), Toast.LENGTH_LONG).show();
}

private List<File> getListFiles(File parentDir) {
// On first call, parentDir is your sdcard root path
ArrayList<File> inFiles = new ArrayList<File>(); // Initialize an array list to store file names
File[] files = parentDir.listFiles(); // List all files in this directory
for (File file : files) {

if (file.isDirectory()) { // If the file is a directory
inFiles.addAll(getListFiles(file)); // *** Call this recursively to get all lower level files ***
}
}
return inFiles;
}
}

最佳答案

public void Search_Dir(File dir) {
String pdfPattern = ".pdf";

Log.d("check",
"Environment.getExternalStorageDirectory()------"
+ dir.getName());

File FileList[] = dir.listFiles();
Log.d("check",
"filelist length---- "
+ FileList.length);

if (FileList != null) {
for (int i = 0; i < FileList.length; i++) {

if (FileList[i].isDirectory()) {
Search_Dir(FileList[i]);
} else {

Log.d("check",
"for check from .pdf---- "
+ FileList[i].getName());
if (FileList[i].getName().endsWith(pdfPattern)) {
// here you have that file.
pdfArrayList.add(FileList[i].getPath());

}
}
}
}

}

关于java - 如何查找 Android 设备中的所有文件并将它们放入列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18972788/

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