< 返回版块

Borber 发表于 2021-12-13 15:25

Tags:文件操作

我现在使用的是 windows 操作系统, 我想实现在文件管理器(或任何支持复制操作的地方)中复制一个, 或多个文件, 然后在rust中获取到这一个/几个文件的信息(目前来说就是他们的绝对地址). 我该怎么实现呢?

我尝试了了 clipboard-win crate, 但它好像并不能实现

以及顺便如果是在 linux 系统中也有这样的需求, 如果可以顺便也解决真的不胜感激

评论区

写评论
tokyohuang123 2021-12-14 17:18

/doge

作者 Borber 2021-12-13 16:23

好了, 搞定了! 感谢大佬.

目前的版本是这样

use clipboard_win::raw;
...
    let mut v:Vec<String> = vec![];
    raw::open();
    raw::get_file_list(&mut v);
    println!("{:?}", v);
    raw::close();

可以获取到复制的文件地址了!

--
👇
gwy15: 看 https://docs.microsoft.com/en-us/windows/win32/shell/clipboard,用里面的 CF_HDROP 格式读

作者 Borber 2021-12-13 15:56
use clipboard_win::{formats, Clipboard};

...

let mut buffer = [0u8; 52];
let result = Clipboard::new().unwrap().get(formats::CF_HDROP, &mut buffer).unwrap();

当我这样做时, 会报错. no method named getfound for structClipboard in the current scope , 大佬可以再指点一下吗? 我是按照官方的文档来写的. clipboard-win

--
👇
gwy15: 看 https://docs.microsoft.com/en-us/windows/win32/shell/clipboard,用里面的 CF_HDROP 格式读

作者 Borber 2021-12-13 15:35

感谢大佬! 我去看看. 大佬对linux了解吗, 如果是linux 这个应该怎么解决呀

--
👇
gwy15: 看 https://docs.microsoft.com/en-us/windows/win32/shell/clipboard,用里面的 CF_HDROP 格式读

gwy15 2021-12-13 15:32

看 https://docs.microsoft.com/en-us/windows/win32/shell/clipboard,用里面的 CF_HDROP 格式读

1 共 5 条评论, 1 页