You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java文件夹路径校验循环异常求助:正确路径仍被重复要求输入

问题分析与解决:文件夹路径校验循环异常

你的代码出现该问题的核心原因是:仅在程序初始化时执行了一次路径存在性校验,后续用户重新输入路径后,没有更新File实例和exists变量的状态,循环始终使用第一次的校验结果,导致逻辑异常。

修改后的代码

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class JavaProject {

    public static void main(String[] args) throws IOException {
        
        System.out.println("Give me the path of the folder");
        Scanner fold = new Scanner(System.in);
        boolean folderIsValid = true;
        
        while (folderIsValid) {
            // 每次循环都读取新路径并创建File对象,重新校验存在性
            String folderName = fold.nextLine();
            File f = new File(folderName);
            boolean exists = f.exists();
            
            if (!exists) {
                System.out.println("The folder you are searching does not exist");
                System.out.println("Try again!");
            } else {
                System.out.println("The folder you are searching exists");
                folderIsValid = false;
            }  
        }
        fold.close(); // 关闭Scanner资源,符合Java资源管理规范
    }   
}

关键改动说明

  • 将File对象创建、路径存在性校验逻辑移到while循环内部,确保用户每次输入新路径后都会重新执行校验
  • 移除了初始的重复路径读取和校验代码,精简逻辑
  • 添加Scanner资源关闭操作,避免资源泄漏
  • 简化提示文本,去掉冗余的变量状态输出

内容的提问来源于stack exchange,提问作者Lian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 12:45:43