如何在不从 UNC 路径读取文件的情况下检查 Java 中的文件大小?

How to check filesize in Java without reading the file from an UNC Path?

我想知道如何在不从两个不同的 Microsoft 服务器通过 UNC 路径打开或读取文件的情况下检查 Java 中的文件大小? 它用于接口引擎过滤器功能。所以没有 HTML DOM 等可用。

现在有效的方法: API

中有一个 Util 函数
java.nio.file.Files.size(java.nio.file.Paths.get('/path/to/file')

由于错误,它在 UNC PATHS 上不起作用:

Wrapped java.nio.file.AccessDeniedException: \server\folder\file.pdf

使用示例:

var filePath = msg['path'].toString();
try{
    var fileContent = java.nio.file.Files.size(java.nio.file.Paths.get(filePath));
    var fileSize = fileContent / 1048576;
    logger.debug("Filesize in MB: " + fileSize);
}
catch(e){
...

期望:一种通过 UNC 访问读取文件大小的文件属性的方法

既然你知道文件路径,你总是可以使用 java.io.File.length() 到 return 文件的长度,以字节为单位。即:

var filePath = msg['path'].toString();
// Validate that the filePath is indeed a file and it exists
var fileSize = Packages.java.io.File(filePath).length();