如何读取 android 的 Internal/External 存储中存在的文件的文件名
How to read file names of the files that are present in the android's Internal/External storage
我正在尝试为 android 编写我自己的文件管理器。我想知道的是如何读取 external/internal 存储中存在的所有文件的文件名?
我想读取文件名并将它们显示在列表视图中,以便用户可以查看哪个文件夹中存在哪些文件。我知道这件事将以递归方式工作,因为我还必须读取子目录的内容。
以下代码将为您提供 android sdcard 中的文件列表:
/**
* Return list of files from path. <FileName, FilePath>
*
* @param path - The path to directory with images
* @return Files name and path all files in a directory, that have ext = "jpeg", "jpg","png", "bmp", "gif"
*/
private List<String> getListOfFiles(String path) {
File files = new File(path);
FileFilter filter = new FileFilter() {
private final List<String> exts = Arrays.asList("jpeg", "jpg",
"png", "bmp", "gif");
@Override
public boolean accept(File pathname) {
String ext;
String path = pathname.getPath();
ext = path.substring(path.lastIndexOf(".") + 1);
return exts.contains(ext);
}
};
final File [] filesFound = files.listFiles(filter);
List<String> list = new ArrayList<String>();
if (filesFound != null && filesFound.length > 0) {
for (File file : filesFound) {
list.add(file.getName());
}
}
return list;
}
您也可以调用相同的方法来获取子目录文件。
这是你必须做的。在开始写作之前,请参考 java 中的文件 class。这将帮助您清除很多东西。
下面是提供文件列表的片段。
File directory = new File(path);
File[] listFiles = directory.listFiles();
if (listFiles != null) {
for (File file : listFiles) {
if (file.isDirectory())
// do the stuff what you need
else if (file.isFile()) {
// do the stuff what you need
}
}
}
}
我正在尝试为 android 编写我自己的文件管理器。我想知道的是如何读取 external/internal 存储中存在的所有文件的文件名? 我想读取文件名并将它们显示在列表视图中,以便用户可以查看哪个文件夹中存在哪些文件。我知道这件事将以递归方式工作,因为我还必须读取子目录的内容。
以下代码将为您提供 android sdcard 中的文件列表:
/**
* Return list of files from path. <FileName, FilePath>
*
* @param path - The path to directory with images
* @return Files name and path all files in a directory, that have ext = "jpeg", "jpg","png", "bmp", "gif"
*/
private List<String> getListOfFiles(String path) {
File files = new File(path);
FileFilter filter = new FileFilter() {
private final List<String> exts = Arrays.asList("jpeg", "jpg",
"png", "bmp", "gif");
@Override
public boolean accept(File pathname) {
String ext;
String path = pathname.getPath();
ext = path.substring(path.lastIndexOf(".") + 1);
return exts.contains(ext);
}
};
final File [] filesFound = files.listFiles(filter);
List<String> list = new ArrayList<String>();
if (filesFound != null && filesFound.length > 0) {
for (File file : filesFound) {
list.add(file.getName());
}
}
return list;
}
您也可以调用相同的方法来获取子目录文件。
这是你必须做的。在开始写作之前,请参考 java 中的文件 class。这将帮助您清除很多东西。 下面是提供文件列表的片段。
File directory = new File(path);
File[] listFiles = directory.listFiles();
if (listFiles != null) {
for (File file : listFiles) {
if (file.isDirectory())
// do the stuff what you need
else if (file.isFile()) {
// do the stuff what you need
}
}
}
}