#windows #smb #share #networking #user-login

sambrs

围绕WNetAddConnection2A的小巧便捷包装,用于连接Windows上的SMB共享

3个版本

0.1.2 2024年7月29日
0.1.1 2024年7月28日
0.1.0 2024年7月28日

#58Windows API

Download history 90/week @ 2024-07-22 238/week @ 2024-07-29

每月下载量 328次

MIT 许可证

24KB
289

Sambrs

围绕 WNetAddConnection2AWNetCancelConnection2A 的小巧便捷包装。目标是提供一个易于使用的接口,以连接到Windows上的SMB网络共享。

Sam -> SMB -> Rust -> Samba 已被占用? -> sambrs

特性

  • 连接到SMB网络共享的简单且便捷的接口。
  • 支持指定本地Windows挂载点。
  • 选项以持久连接跨用户登录会话。
  • 交互模式用于密码提示。

安装

将以下内容添加到您的 Cargo.toml

[dependencies]
sambrs = "0.1"

用法

使用可选的本地Windows挂载点实例化一个 SmbShare 并建立连接。

在调用连接方法时,您可以选择在用户登录会话之间持久连接并启用交互模式。交互模式将阻塞,直到用户提供正确的密码或取消,导致 Canceled 错误。

use sambrs::SmbShare;

fn main() {
    let share = SmbShare::new(r"\\server\share", "user", "pass", Some('D'));

    match share.connect(false, false) {
        Ok(()) => println!("Connected successfully!"),
        Err(e) => eprintln!("Failed to connect: {}", e),
    }

    // use std::fs as if D:\ was a local directory
    dbg!(std::fs::metadata(r"D:\").unwrap().is_dir());
}

许可证

本项目采用MIT许可证。有关更多详细信息,请参阅LICENSE 文件。

特别感谢

特别感谢 Christian Visintin 对其有关在Windows上使用Rust访问SMB共享的博客文章的信息。如果您需要跨多个协议工作的功能齐全的远程文件访问解决方案,您绝对应该查看他的项目remotefs

依赖项

~13–21MB
~272K SLoC