作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 NFS 驱动器上有很多小文件(在我的例子中是 Amazon EFS)。文件通过 HTTP 协议(protocol)提供,与经典的 Web 服务器非常相似。由于我需要验证文件的最后一次修改,因此每个文件请求至少需要一次 I/O。即使我已经将文件主体缓存在 RAM 中也是如此。
有没有一种方法可以仅使用单个 I/O 操作来读取树中(或至少单个目录中)所有文件的最后修改属性?
有一个方法 Files.readAttributes它将单个文件的多个属性作为批量操作读取。我正在寻找批量操作来读取多个文件的单个属性。
更新:在 NFS 的情况下,这个问题是如何利用 NFS 命令 READDIRPLUS。这个命令完全满足了我的需要,但似乎无法在 Java I/O 库之外使用它。
最佳答案
我不知道有一个标准的 Java 类可以在一次操作中列出所有文件和修改时间,但是如果您被允许使用主机环境并且 NFS 驱动器已挂载,您可以采用以下技术来适应您的情况环境:
ProcessBuilder listFiles = new ProcessBuilder("bash", "", "ls -l");
Process p = listFiles.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String inputLine;
List<String> filesWithAttributes = new ArrayList<String>();
while ((inputLine = reader.readLine()) != null) {
filesWithAttributes.add(inputLine);
}
关于nio - 使用尽可能少的 IO 操作读取树中所有文件的文件属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58045981/
我知道在 KDB 中,如果您有一个列表,例如... l:`apples`oranges`pears` 您可以像下面这样进行 N 次随机选择: 9?l 但是如何尽可能均匀地选择列表中的每个项目? 最佳答
我真的厌倦了它。我有一个高级 Web 应用程序依赖于大量 Javascript 库(jQuery、jQueryUI、OpenLayers、highcharts、EJSChart 等等)。不用说,Int
我是一名优秀的程序员,十分优秀!