为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复“File.exists()”错误的布尔返回?

如何修复“File.exists()”错误的布尔返回?

开满天机 2023-05-10 13:57:28
我目前有一个基本的客户端-服务器应用程序要开发作为我的任务。该程序仅用于计算质数、GCD 等。客户端是一个 GUI,服务器端(本地主机)负责执行计算并将结果发送回客户端。其中一个要求是,当客户端用户点击“计算”按钮时,客户端程序发送客户端需要服务器执行和计算的特定任务( 、 等)ComputePrime.java的类名。ComputeGCD.java然后服务器需要检查文件夹中是否存在类文件。如果没有,则服务器向客户端发送一条错误消息。如果确实存在,那么应该按预期进行计算。但是,出于某种原因,即使文件存在,“File.exists()”指令仍会返回 false。另外,我也需要它在运行时工作。例如,如果我ComputePrime.java在程序执行后删除 a,它应该返回 false,如果我在运行时将它添加回来,它应该返回 true。我把它放在一个线程中,因为它无限运行只是为了看看它是否适用于动态删除和添加文件。只要是基本的 Java 代码,欢迎任何其他想法。Thread t1 = new Thread(){@Overridepublic void run(){    File file = new File("../Contract/ComputePrime.java");    if(file.exists())    {        System.out.println("Exists");    }    else    {        System.out.println("Not Exists");    }    try {        this.sleep(1000);        this.run();    } catch (InterruptedException ex){}}};t1.start();PS 此代码在服务器端。这是项目文件夹结构。我尝试使用不同的相对路径技术,例如 ".././Contract/ComputePrime.java" 、 ".././ComputePrime.java" 、 "~/Contract/ComputePrime.java"、"../Contract /Compute”和“./../Contract/ComoutePrime.java”。即使文件在文件夹中,它们都返回 false。它必须是相对路径,这样程序才能在我教授的计算机上运行。我不确定为什么会这样。在过去的 5 或 6 个小时里,我一直在谷歌上搜索,试图解决这个问题,但我一无所获,这就是为什么我要问一个重复的问题。最后,如果找到解决方案,是否有可能在运行时/动态地解决?比如我执行完删除文件,它应该返回false,当我放回文件时,它应该返回true。先感谢您!更新 尝试 file.getAbsolutePath 后,这就是我得到的输出那么,我猜上面代码中的相对路径是正确的吗?
查看完整描述

1 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

相对路径是错误的。答案:

./src/Server/Contract/ComputePrime.java


查看完整回答
反对 回复 2023-05-10
  • 1 回答
  • 0 关注
  • 214 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信