rust读取文件目录下的文件,形参是文件目录的路径,返回一个值为文件目录下的文件的文件名与路径组成的对象的数组
时间: 2024-04-12 17:30:37 浏览: 102
获取指定目录下的文件路径及文件名
你可以使用一个 `Vec` 来存储文件的文件名和路径,然后将其作为函数的返回值。下面是一个示例代码:
```rust
use std::fs;
use std::path::{Path, PathBuf};
fn read_directory_files(path: &Path) -> Vec<(String, PathBuf)> {
let mut files = Vec::new();
if let Ok(entries) = fs::read_dir(path) {
for entry in entries {
if let Ok(entry) = entry {
let entry_path = entry.path();
if let Some(file_name) = entry_path.file_name() {
if let Some(file_name_str) = file_name.to_str() {
files.push((file_name_str.to_string(), entry_path.clone()));
}
}
}
}
}
files
}
fn main() {
let path = Path::new("path/to/directory");
let files = read_directory_files(&path);
for (file_name, file_path) in files {
println!("File name: {}", file_name);
println!("File path: {:?}", file_path);
}
}
```
在上面的示例中,我们定义了一个函数 `read_directory_files`,它接受一个 `Path` 类型的参数作为文件目录的路径,并返回一个 `Vec<(String, PathBuf)>` 类型的对象,其中存储了文件的文件名和路径。在 `read_directory_files` 函数中,我们遍历目录中的每个条目,并将文件的文件名和路径存储到 `files` 向量中。
在 `main` 函数中,我们调用 `read_directory_files` 函数来获取文件的文件名和路径,并遍历打印每个文件的信息。
请将示例代码中的 `"path/to/directory"` 替换为你实际想要读取的目录的路径。
阅读全文