我目前能够获取具有特定文件扩展名的所有文件
private List<String> getListFiles(File parentDir) {
ArrayList<String> inFiles = new ArrayList<String>();
File[] files = parentDir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
inFiles.addAll(getListFiles(file));
}
else {
if (file.getName().endsWith(".jpg")||file.getName().endsWith(".jpeg")) {
inFiles.add(file.getAbsolutePath());
}
Log.d("fullpath", "full path is" + file.getAbsolutePath());
}
}
return inFiles;
}
但目录中还有一些文件没有任何扩展名。我也想列出那些文件。我试过这个方法。但我无法列出这些文件。
String fileName=FilenameUtils.getBaseName(file.getName());
inFiles.add(fileName);
如何实现这一目标?请帮帮我。
答案 0 :(得分:1)
您正在检查代码中的文件扩展名。如果你这样修改你的代码,你也会得到其他文件。
private List<String> getListFiles(File parentDir) {
ArrayList<String> inFiles = new ArrayList<String>();
File[] files = parentDir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
inFiles.addAll(getListFiles(file));
}
else {
inFiles.add(file.getAbsolutePath());
}
}
return inFiles;
}
答案 1 :(得分:1)
您可以使用此方法
private static void getListFiles(File mInputDir,ArrayList<File> mFilesExt,ArrayList<File> mFilesNoExt) {
File[] files = mInputDir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
getListFiles(file,mFilesExt,mFilesNoExt);
}
else {
if (file.getName().contains(".")) {
mFilesExt.add(file);
}else{
mFilesNoExt.add(file);
}
}
}
}
并使用您的输入目录调用此方法以扫描带有/不带扩展名的文件数组
File mInputDir = new File("/sdcard/Pictures/your_dir");
ArrayList<File> mFilesExt = new ArrayList<>();
ArrayList<File> mFilesNoExt = new ArrayList<>();
getListFiles(mInputDir,mFilesExt,mFilesNoExt);
答案 2 :(得分:0)
首先将所有Filepath存储在一个arraylist中,然后尝试以下代码:
if (arrayList_filenames.size() != 0) {
for(int count = 0;count<arrayList_filenames.size() !=0){
String extension = arrayList_filenames.get(count).toString().substring(arrayList_filenames.get(count).toString().lastIndexOf("."));
Log.d("displayingextension", "**** " + extension);
}
}