我知道没有标准的Java机制来测试文件是否打开。 任何人都可以告诉我是否有任何库可以通过它来完成这项任务,或者其他一些方式,
这是我的方案,比如说我手动打开了一个docx文件,当我尝试上传该文件时,自文件打开以来它没有上传,所以如果我们尝试上传一个外面打开的文件它需要显示一条消息告诉"文件已打开"。
答案 0 :(得分:2)
如果您的客户是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 }
BTW:当您在Google上搜索“java file is open”时,这是第一个答案。
但是,我假设你没有Java客户端,只有Java服务器而你想通过网页上传文件(所以你有一个HTML + JS客户端)。我假设这一点,因为你没有告诉我们。
JavaScript不允许您写入磁盘,因为这是一个安全问题(我认为Chrome支持某种JavaScript文件API,它允许您写入磁盘,但没有其他浏览器)。所以你不能通过JavaScript测试这个。
测试文件是否打开的一般方法是测试文件是否存在某些锁定。但这并不能保证在没有锁的情况下不打开文件,但它应该足够了。