macOS 上通过 inode 和序列号获取文件路径

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

我目前正在开发一个 Rust 程序,我需要通过文件的 inode 和卷序列号检索文件的路径,类似于 Xcode 中的

GetFileInfo
实用程序的工作方式。

例如,在 macOS 中,创建文件 (

hello.txt
) 并重命名 (
mv hello.txt world.txt
) 后,您可以使用
GetFileInfo
检索新文件路径:

$ /usr/bin/GetFileInfo /.vol/16777229/25468225
file: "/Users/user/world.txt"

可以从 stat 命令的输出中检索文件的 inode 和卷序列号:

$ stat hello.txt
16777229 25468225 -rw-r--r-- 1 user staff 0 6 "May 13 22:09:46 2024" "May 13 22:09:45 2024" "May 13 22:09:45 2024" "May 13 22:09:45 2024" 4096 8 0 hello.txt

我想在 Rust 中实现类似的功能。是否有 Rust 库或库组合可以帮助我实现这一目标?如果没有,在 Rust 中实现此功能的最佳方法是什么?

任何帮助或指导将不胜感激。谢谢!

macos rust cocoa
1个回答
0
投票

我找到了一个解决方案并创建了一个实现跨平台功能的 Rust crate。简而言之,在 Windows 上,它使用

GetFileByID
,在 macOS 上,它使用
.vol
目录和
fcntl
F_GETPATH

您可以在这里找到箱子:refind

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