gpt4 book ai didi

java - 将文件列表与对象列表进行比较以删除文件

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

我有一个计划列表,每个计划都有一个 PDF 文件,位于 ("/web/driven/")当我删除计划时,我并没有删除文件,所以现在我尝试添加一个功能来删除计划列表中没有 id 的所有文件。

文件名总是有id。示例:6365_Test-LVLD.pdf

对象列表:

@Transaction
public List<StorePlan> getPlans() {
List<StorePlan> list = getCurrentSession().createCriteria(StorePlan.class).list();
return list;
}

然后我将从我的文件夹中获取所有文件:

protected File[] getPDFs() {
return new File("/web/managed/").listFiles();
}

这是我的清除函数:

protected void getPlanIds() {
int count = 0;
for(StorePlan plan : storePlanDao.getPlans()) {
for (File file : getPDFs()) {
String planFileId = file.getName().substring(0, 4);

if(plan.getId() != Integer.valueOf(planFileId)) {
file.delete();
count++;
}
}
}
}

使用我的代码:它将删除我的文件夹中的所有内容。当我想保留在其他列表中仍具有 id 的文件时。

最佳答案

如果我理解你的问题,那么这应该有效:

    List<Integer> planIds = Lists.newArrayList();   

for(StorePlan plan : storePlanDao.getPlans()){
planIds.add(plan.getId());
}

for (File file : getPDFs()) {
Integer planFileId = Integer.valueOf(file.getName().substring(0, 4))
if(!ids.contains(planFileId)) {
file.delete();
count++;
}
}

关于java - 将文件列表与对象列表进行比较以删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47597707/

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