【发布时间】:2019-10-23 08:45:12
【问题描述】:
问题分两步。在 C++14(或 C)中,在 Linux 和 Windows 下。
有没有办法识别 (UUID) 存储给定 URI(文件或目录)的磁盘分区(或 docker 卷)?
有没有办法知道 2 个 URI(目录文件)是否存储在同一个磁盘分区(或 docker 卷)上?
(为了避免 X Y 问题:)真正的目标是能够用最好的方法移动文件:
- 如果它们在同一个分区(或 Docker 卷)上,则轻移动,
- 内容复制(如果它们位于不同的分区)。
我有这些曲目:statvfs、GetVolumeInformationByHandleW。
【问题讨论】:
-
"真正的目标是能够用最好的方法移动文件" - 然后让操作系统为您处理。在 Windows 上,您可以将
MoveFileEx()与MOVEFILE_COPY_ALLOWED标志一起使用。它将在同一个驱动器上进行有效的移动,并在驱动器之间进行复制+删除。