首页 > 解决方案 > 如何在 Java 中检查文件大小而不从 UNC 路径读取文件?

问题描述

我想知道如何在不通过 UNC 路径从两个不同的 Microsoft 服务器打开或读取文件的情况下检查 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){
...

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

标签: javafilesizemirth

解决方案


由于您知道文件路径,因此您总是可以使用java.io.File.length()返回文件的长度(以字节为单位)。IE:

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

推荐阅读