猿问

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

我目前有一个基本的客户端-服务器应用程序要开发作为我的任务。


该程序仅用于计算质数、GCD 等。客户端是一个 GUI,服务器端(本地主机)负责执行计算并将结果发送回客户端。


其中一个要求是,当客户端用户点击“计算”按钮时,客户端程序发送客户端需要服务器执行和计算的特定任务( 、 等)ComputePrime.java的类名。ComputeGCD.java然后服务器需要检查文件夹中是否存在类文件。如果没有,则服务器向客户端发送一条错误消息。如果确实存在,那么应该按预期进行计算。


但是,出于某种原因,即使文件存在,“File.exists()”指令仍会返回 false。另外,我也需要它在运行时工作。例如,如果我ComputePrime.java在程序执行后删除 a,它应该返回 false,如果我在运行时将它添加回来,它应该返回 true。


我把它放在一个线程中,因为它无限运行只是为了看看它是否适用于动态删除和添加文件。只要是基本的 Java 代码,欢迎任何其他想法。


Thread t1 = new Thread()

{

@Override

public 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 后,这就是我得到的输出

那么,我猜上面代码中的相对路径是正确的吗?


开满天机
浏览 215回答 1
1回答

慕姐4208626

相对路径是错误的。答案:./src/Server/Contract/ComputePrime.java
随时随地看视频慕课网APP

相关分类

Java
我要回答