java - 如何在 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 访问读取文件大小文件属性的方法
解决方案
由于您知道文件路径,因此您总是可以使用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();
推荐阅读
- laravel - 我想使用 laravel 向相关类别展示产品
- android - 在 Android Studio 中从 JSON 获取价值
- assembly - 如何从汇编程序中的 ascii 表中导出字符号?
- python - 有没有办法在 Python 的主线程上执行函数?
- rust - 有没有一种稳定的方法来告诉 Rustfmt 跳过整个文件
- python - 如何测量弯曲轮廓的长度
- java - Java:继承与依赖注入“自动装配”
- python - 具有多层条件的 Python 正则表达式匹配组
- ruby - 尝试使用 IO.foreach 读取文件时出现分段错误
- minifilter - ProcessNotifyRoutine 和 Minifilter