gpt4 book ai didi

nio - 使用尽可能少的 IO 操作读取树中所有文件的文件属性

转载 作者:行者123 更新时间:2023-12-02 16:14:05 25 4
gpt4 key购买 nike

我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com