- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道有一个用于类似任务的箱子,但它不是特定于 Windows 的,可能不是最有效的方法。我还希望学习如何使用 Rust 在 C# 中实现我已经知道的事情。
这是我到目前为止尝试过的:read_dir source (更新)
fn main() {
unsafe{
for mut cur_drl in get_win32_ready_drives(){
let mut mcur_drl = cur_drl.clone();
let mut cur_path = PathBuf::from(mcur_drl);
//here i try to print root of current logical
let unwrpd_curfspath = fs::metadata(cur_path).unwrap();
if unwrpd_curfspath.is_dir(){
for entry in (fs::read_dir(cur_path)) {
let curfspath2 = fs::metadata(entry.path()).unwrap();
if curfspath2.is_dir(){
cur_drl.push_str(entry.path());
println!("drive {0}", cur_drl);
}
}
}
}
}
}
// this is the working part of the project so far
// getting all drive letters
//(hdd only actually (3 is hdd & 2 = removable..sd cards etc') into a list
unsafe fn get_win32_ready_drives() -> Vec<String>
{
let mut logical_drives = Vec::with_capacity(5);
let mut bitfield =kernel32::GetLogicalDrives();
let mut drive = 'A';
let mut rtstr = CString::new("");
while bitfield != 0 {
if bitfield & 1 == 1 {
let strfulldl = drive.to_string() + ":\\";
let cstrfulldl = CString::new(strfulldl.clone()).unwrap();
let drvT = kernel32::GetDriveTypeA(cstrfulldl.as_ptr());
if(drvT ==3 || drvT ==2)
{
logical_drives.push(strfulldl);
// println!("drive {0} is {1}", strfdl, drvT);
}
}
drive = std::char::from_u32((drive as u32) + 1).unwrap();
bitfield >>= 1;
}
logical_drives
}
此代码无法编译,因为我遇到了问题了解每种返回类型以及如何正确处理其结果的迭代。
最佳答案
几乎没有来自 this post 的帮助
extern crate kernel32;
extern crate libc;
use std::fs::{self, DirEntry};
use std::path::Path;
use std::path::PathBuf;.
fn main() {
unsafe{
for mut cur_drl in get_win32_ready_drives(){
let mut mcur_drl = cur_drl.clone();
let mut cur_path = PathBuf::from(mcur_drl.clone());
//print root of each logical drive letter
let unwrpd_curfspath = fs::metadata(cur_path).unwrap();
if unwrpd_curfspath.is_dir(){
for entry in fs::read_dir(mcur_drl).unwrap() {
println!("drive {0}", entry.unwrap().path().display());
}
}
}
}
}
//getting all drive letters
unsafe fn get_win32_ready_drives() -> Vec<String>
{
let mut logical_drives = Vec::with_capacity(5);
let mut bitfield =kernel32::GetLogicalDrives();
let mut drive = 'A';
let mut rtstr = CString::new("");
while bitfield != 0 {
if bitfield & 1 == 1 {
let strfulldl = drive.to_string() + ":\\";
let cstrfulldl = CString::new(strfulldl.clone()).unwrap();
let x = kernel32::GetDriveTypeA(cstrfulldl.as_ptr());
if(x ==3 || x ==2)
{
logical_drives.push(strfulldl);
// println!("drive {0} is {1}", strfdl, x);
}
}
drive = std::char::from_u32((drive as u32) + 1).unwrap();
bitfield >>= 1;
}
logical_drives
}
我希望其他一些新手可以利用这个
关于winapi - 获取硬盘所有逻辑驱动器号并收集根目录的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33654653/
我创建了一个具有高级非托管磁盘配置的 Azure RM VM。我有 1 个 127GB 的操作系统磁盘和一个大小为 56GB 的临时磁盘。我的操作系统磁盘还包含 SQL Server 和 ShareP
我正在开发一个目录树比较工具,它可以跨多台计算机工作,通过 TCP 与其他实例通信。 该工具运行良好,但到目前为止一直依赖于可由用户更改的驱动器号和标签。可移动驱动器是另一个问题。 我想通过某种唯一的
我正在使用硬盘 ID 为我的软件生成许可证 key 。在我的机器中,我得到 15 个字符长度的 ID。所有制造商的硬盘 ID 的这个长度是恒定的还是在它们之间变化? 是否有任何公认的方法来解释硬盘 I
本文实例讲述了java实现获取cpu、内存、硬盘、网络等信息的方法。分享给大家供大家参考,具体如下: 1. 下载安装sigar-1.6.4.zip 使用java自带的包获取系统数据,容易找不到包
我正在探索将 Aerospike 作为键值数据库,并将数据存储在磁盘上以确保安全。请确认,我理解正确: 如果在命名空间配置中我设置: 存储引擎设备 内存大小4G 文件/opt/aerospike/da
看着海藻,想换minio。主要原因 - 海藻可以很容易地用任意数量的节点/磁盘扩大。 但是对我的基础设施有几个问题。现在我有 2 个节点,每个节点有 100 个硬盘(HPE CL5800),它们被包含
我目前正在编写一个 CUDA 应用程序,并且遇到了一些“喂养野兽”的 IO 问题。 我想知道是否有任何方法可以直接从 RAID Controller 或 NIC 读取数据并将该数据直接发送到 GPU。
如何衡量文件(硬盘)I/O 的特性?例如,在具有硬盘(速度 X)和 cpu i7(或任何数量的内核)和 Y 数量的 ram(使用 Z Hz BIOS)的机器上(在 Windows 操作系统上): 可以
就像标题一样,我在裸机主机上安装了 RancherOS 并且想要 动态处理外部 USB 硬盘的添加/移除。它应该可以作为其他容器的绑定(bind)挂载访问。 最佳答案 你可以这样做: # udev_c
我想实现以下目标。 这样做的目的是让用户能够从他/她的硬盘驱动器中选择一个文件。 而没有上传的原因当然是传输成本和存储配额。没有理由保存文件。 这可能吗? 最佳答案 可以播放本地视频文件。 当
我想实现以下目标。 这样做的目的是让用户能够从他/她的硬盘驱动器中选择一个文件。 而没有上传的原因当然是传输成本和存储配额。没有理由保存文件。 这可能吗? 最佳答案 可以播放本地视频文件。 当
对于这些实例,在 C++ 运行时,有人可以大致说明什么是什么(硬盘、RAM、堆栈或堆): 局部/全局变量 类、方法和函数 指针 对象 堆栈/堆是否都位于物理 RAM 中? 如果有人可以在答案中包含硬件
我是 Synology 的新手。我想要访问我的 Synology NAS 驱动器。我遵循 Synology_Download_Station_Official_API。 我阅读了基本工作示例以获取 A
我想知道Linux(特别是树莓派)是否可以实现将我的有线电视接收器连接到我的树莓派(主/从?)有线电视接收器认为树莓派是硬盘但同时允许网络中的客户端获取录制的电影(当然不是正在录制的电影) 我猜 WD
由于我在本地主机上构建了许多虚拟网络,并且 htdocs 文件夹中的数据每天都在增加。 我想将 htdocs 文件夹移动到外部硬盘,可以这样做吗? 我尝试编辑 httpd.conf 文件。但是当我打开
我是一名优秀的程序员,十分优秀!