java—文件夹的输出,其中包含所需的文件

avkwfej4  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(318)

在我的程序中,实现了以下几点: listView 在里面,我把里面有特定数据的文件夹拿出来。但其中有些是空的。我正在尝试进行检查,以确保它不会在中为我显示空文件夹 listView ```
public static File dir= new File(Environment.getExternalStorageDirectory().getPath()+"/Sales/Archive");

ArrayList theNamesOfFiles = new ArrayList<>();
File[] filelist = dir.listFiles();
for (int i = 0; i < filelist.length; i++) {
long diff = (new Date().getTime() - filelist[i].lastModified()) / 144 / 144 / 144;
Arrays.sort(filelist, Comparator.comparingLong(File::lastModified).reversed());
if (diff < 72)
theNamesOfFiles.add(filelist[i].getName());
}

经过几次尝试,结果证明他进入了那里的每个文件,寻找我需要的东西。但是没有他们,他展示的一切都是一样的

File Path = new File((new File(ArchiveDir)).getParent());
File[] listFile = Path.listFiles();
for (File file : listFile) {
File[] listFile2 = file.listFiles();
for (File file2 : listFile2){
if (file.isDirectory() && file2.getName().toUpperCase().contains("S")) {
File[] filelist = Path.listFiles();
for (int i = 0; i < filelist.length; i++) {
long diff = (new Date().getTime() - filelist[i].lastModified()) / 144 / 144 / 144;
Arrays.sort(filelist, Comparator.comparingLong(File::lastModified).reversed());
if (diff < 72)
theNamesOfFiles.add(filelist[i].getName());
}
}
}
}

pinkon5k

pinkon5k1#

据我所知, theNamesOfFiles 是文件夹的列表。并且它包含单个文件夹的名称。因此,如果您想检查该文件夹是否为空,可以通过 file.length() 功能。返回 0 如果 file 是空的。
这是我认为最适合你的解决方案。

if (file.isDirectory() && file2.getName().toUpperCase().contains("S")) {
                    File[] filelist = file2.listFiles(); //update
                    for (int i = 0; i < filelist.length; i++) {
                        long diff = (new Date().getTime() - filelist[i].lastModified()) / 144 / 144 / 144;
                        Arrays.sort(filelist, Comparator.comparingLong(File::lastModified).reversed());
                        if (diff < 72)
                          if(filelist[i].length() !=0) //update
                            theNamesOfFiles.add(filelist[i].getName());//update
                    }
                }

这将确保索引中存在元素 i 不是空的。如果它是空的,它将被跳过。我不会被添加到您的列表中。

相关问题