调用File对象上的delete(),效果是否立即可见?

问题描述:

如果我打电话给File.delete(),底层文件系统上的效果是否立即可见?我可以在相同的进程/线程中写入相同的文件名,而无需担心发生坏事吗?如果没有,是否有办法将底层文件系统与File对象同步?调用File对象上的delete(),效果是否立即可见?

File.delete()返回一个布尔值,告诉您文件是否已被正确删除。
所以,你可以写这样的:

if(yourFile.delete()) { 
    //keep doing what you want. You are now sure file has been deleted ! 
} 

此外,写一个新的文件之前,你可以检查是否具有相同名称的文件已经存在。

从Oracle文档:

Returns: 
true if and only if the file or directory is successfully deleted; false otherwise 

Oracle source

Also there is a SO thread that might help you

+0

我不知道如果布尔表示该文件是不再显示在文件系统中,或者如果它实际上可能是在稍后时间被删除? –

+0

当返回true时,文件已被删除。 – HelloSadness