是否可以从 Rust 中打开的文件对象获取路径?

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

假设我打开了一个 std::fs::File 实例。有没有办法通过内部方法访问该文件的完整路径?

std::fs::Metadata 似乎没有此信息。我问这个问题是因为我需要这条路径,也许我可以避免将其保留在单独的变量中。

rust
1个回答
1
投票

不。

File
仅描述操作系统文件句柄/文件描述符,具体取决于具体操作系统。例如,Unix'y 上 File 实现在
File
对象中只有一个文件描述符:

pub struct File(FileDesc);

对结构进行更多挖掘最终会得到一个 RawFd,它只是

c_int

检查结构体的大小证实了这一点:

    println!("{}", std::mem::size_of::<std::fs::File>())
    // prints 4 on Unix'y systems

此外,这些可能不会与文件名明确关联。例如,它们可以与从某处获得的原始 FD、不再具有与其关联的文件名的 inode、具有多个不同硬链接并因此具有多个名称的 inode 相关联。

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