如何识别文件在哪个存储设备中

问题描述 投票:1回答:1

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

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

在Windows上,我想我只能在驱动器号的子字符串中使用它的路径,但是对于Linux,我不知道该怎么做。有没有标准化的方法?

java java-io
1个回答
0
投票

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

一种不同的方法是在文件上调用st_dev并以此方式读取设备ID。然后,您可以使用设备ID来查找文件所在的设备。

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

© www.soinside.com 2019 - 2024. All rights reserved.