rust 无法用“tempfile”覆盖临时文件

6jjcrrmo  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(227)

创建用于套接字的临时文件时出错。错误:

Error: Custom { kind: AlreadyExists, error: PathError { path: "/tmp", err: Custom { kind: AlreadyExists, error: "too many temporary files exist" } } }
use tempfile::{tempfile, Builder, NamedTempFile};

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let file = Builder::new().prefix("testsock").rand_bytes(0).tempfile()?;

    Ok(())
}

有什么办法可以覆盖文件吗?

njthzxwz

njthzxwz1#

如果two many files exist尝试创建的文件已经存在,则会发生two many files exist错误。您可以通过删除临时目录中的文件来解决此错误。在您的情况下,临时目录可能位于/tmp/testsock/中,如果仅删除文件不起作用,则还需要删除文件夹testsock。
如果.tempfile(),将使用默认临时文件
但是,如果使用以下命令,则可以指定临时文件。

let tmp = Builder::new()
        .prefix("example")
        .rand_bytes(0)
        .tempfile_in("./")?;

临时文件生成器的文档可在以下位置找到:https://docs.rs/tempfile/latest/tempfile/struct.Builder.html

相关问题