如何等待文件夹创建完成?

问题描述 投票:0回答:1

我正在 google colab 上运行 java 代码,其中涉及创建多个文件夹并在这些文件夹中存储文本文件。

所以我想确保该文件夹已成功创建,然后才能在其中添加文本文件并写入。

在 google colab 中运行我的代码给我带来了与创建文件夹相关的错误,但该文件夹不是 发生在我的设备上,就像有时会创建文件夹有时不会。

我的代码的简化是:

while(!writtenToTextFile){
    //blocks that take a lot of time

    File folder=new File("folder");
    if(folder.mkdir()){
        //create the text file to store data
        writtenToTextFile=true;
    }
}

如何等到文件夹创建一段时间(例如 30 秒)后,代码才运行到另一轮 while 循环,以避免执行耗时较长的块?

java directory google-colaboratory
1个回答
0
投票

如何等待文件夹创建完成?

当您使用

java.io.File.mkdir()
.mkdirs()
时,无需等待。这些方法在其工作完成之前不会返回,无论成功与否。例如,File.mkdir()
的 API 文档部分表示:

退货
true

 当且仅当目录已创建; 
false
否则

此方法也可能会抛出异常,但在没有成功创建目录的情况下不会返回

true

另请注意,如果该方法返回

false

,则可能仅意味着 
File
 对应于已存在的目录,尽管还有其他可能性。

在 google colab 中运行我的代码会出现与创建文件夹相关的错误,而这些错误在我的设备上没有发生,例如有时会创建文件夹,有时不会。

那么,也许您应该提出一个新问题,重点关注可以重现此类错误的特定代码,以及可以执行此操作的环境的详细信息。

如何等到文件夹创建一段时间(例如 30 秒)后,代码才运行到另一轮 while 循环,以避免执行耗时较长的块?

假设 colab 提供了一个 Java 实现,其标准库的行为如文档所述,您不能等待目录被创建,因为在

File.mkdir()

 返回之前它必须已经创建(或者尝试失败)。您可以通过 
Thread.sleep()
 添加任意延迟,但这似乎无法解决您正在观察的任何问题。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.