我知道没有标准的Java机制可以测试文件是否打开。
谁能告诉我是否有任何图书馆可以用来完成这项任务,或者通过其他方式,

这是我的情况,例如我手动打开docx文件时,当我尝试上载该文件本身时,由于该文件已打开,因此该文件未上载,因此,如果我们尝试上载在外部打开的文件,则需要显示一个提示“文件已打开”的消息。

最佳答案

使用Java

如果您的客户端是Java客户端(您在问题中没有提到),则可以尝试this answer中的以下代码:


  使用Apache Commons IO库...

boolean isFileUnlocked = false;
try {
    org.apache.commons.io.FileUtils.touch(yourFile);
    isFileUnlocked = true;
} catch (IOException e) {
    isFileUnlocked = false;
}

if(isFileUnlocked){
    // Do stuff you need to do with a file that is NOT locked.
} else {
    // Do stuff you need to do with a file that IS locked
}



顺便说一句:这是当您在Google上搜索“ java文件已打开”时的第一个答案。

使用JavaScript

但是,我假设您没有Java客户端,只有Java服务器,并且想通过网页上传文件(因此,您有HTML + JS客户端)。我想是因为你不告诉我们。

JavaScript不允许您写入磁盘,因为这是一个安全问题(我认为Chrome支持某种JavaScript File API,允许您写入磁盘,但其他浏览器均不支持)。因此,您无法通过JavaScript进行测试。

一般来说

测试文件是否打开的一般方法是测试文件是否有锁。但这不能保证没有锁就不会打开该文件,但是应该足够了。

10-07 19:44
查看更多