【问题标题】:How to identify in which storage device a file is如何识别文件在哪个存储设备中
【发布时间】:2020-06-13 22:14:36
【问题描述】:

我正在开发一个 Java 软件,它可以读取很多可能很大的文件。

我会尝试并行化它,因此它会从不同的设备(HDD、SSD、闪存驱动器、SMB 等)读取并行文件,并且每次只能从每个设备读取 1 个文件。但为此,我需要知道给定文件在哪个设备中。

在 Windows 上,我想我可以将其路径作为驱动器号的子字符串,但对于 Linux,我不知道如何做到这一点。有标准化的方法吗?

【问题讨论】:

  • 这能回答你的问题吗? Get the metadata of a file
  • Tnx!这些都是很好的信息,但不幸的是,似乎没有人能准确地通知文件所在的设备。

标签: java java-io


【解决方案1】:

用于PosixFileAttributessun.nio.fs.UnixFileAttributes 类包含st_dev 字段。不幸的是,它不可公开访问,您可能必须使用反射来获取值。

另一种方法是在文件上调用stat 并以这种方式读取设备ID。然后你可以使用设备ID来找出文件在哪个设备上。

您可能还想检查mount 的输出以检查您正在使用的路径以及它们的安装位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    相关资源
    最近更新 更多