bytecodealliance / bytecodealliance/cap-std

Create directory if not exists, and return `Dir`

未关闭
#372 7 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Rust
星标
821
派生
57
平均合并
1 小时 16 分钟
30 天内合并 PR
4

描述

Is there a simple way to create a directory if it does not yet exist and to return the `Dir`?

Something along the lines of:

```rs
async fn create_dir(parent: &Dir, path: &str) -> anyhow::Result {
match parent.create_dir(path) {
Ok(_) => {}
Err(e) => match e.kind() {
std::io::ErrorKind::AlreadyExists => {}
_ => {
Err(e)?;
}
},
}
Ok(parent.open_dir(path).await?) // could maybe be a TOCTOU?
}
```

I couldn't find a `create_dir_with` that would allow specifying e.g. `OpenOptions`, and all the create_dir functions don't return the `Dir` itself.

If not, would the project be open to contributions on this?

贡献指南

打开贡献指南

调研方向

首先检查现有的 `Dir::create_dir`、`Dir::open_dir` 以及相关的创建目录 API。检查项目如何处理 `OpenOptions`、已存在的目录和可能的 TOCTOU 问题。完成后应得到一个经过审查的 API,它能够创建或打开目录,支持请求的选项,并通过适当的测试返回 `Dir`。

由索引模型根据 Issue 内容生成。

评估

技术栈
rust
领域
operating-systems, security
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
停滞
描述清晰度
基本清楚
新手友好度
30/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。