Golang Go语言中如何获取剪贴板中的文件信息

发布于 1周前 作者 sinazl 来自 Go语言

Golang Go语言中如何获取剪贴板中的文件信息

如题,我看到的包都只能读取剪贴板中的文本内容,如何获取文件的内容呢

9 回复

没用过 Go ,也没读取过剪切板,猜的:

剪切板复制的文件不就是文件路径吗?
拿到了文件路径再去读文件?

更多关于Golang Go语言中如何获取剪贴板中的文件信息的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


这个应该是桌面环境决定的?

直接搜一下 go clipboard 不好吗

调用系统 api 或者调用其他可以获取剪贴板的命令

我猜这个是你要的?

📋 cross-platform clipboard package that supports accessing text and image in Go (macOS/Linux/Windows/Android/iOS)

https://github.com/golang-design/clipboard

github.com/atotto/clipboard
clipboard.ReadAll()
clipboard.WriteAll(fmt.Sprintf("%s", o.Database.Password))
直接用这两个方法 读写剪切板

mac 下 [[NSPasteboard generalPasteboard] dataForType:@“public.file-url”] 可以拿到,据此可以写 nodejs/ go / rust bindings 或者直接拿 ffi 模块调就行。需要链接 AppKit.framework ,windows 不知道,没用过

在Go语言中,获取剪贴板中的文件信息通常涉及到操作系统的剪贴板服务和文件系统操作。由于Go标准库并未直接提供访问剪贴板内容的API,我们需要借助第三方库或平台特定的API。

对于Windows系统,可以使用github.com/atotto/clipboard库来访问剪贴板。但请注意,该库主要支持文本和图像,对于文件,Windows剪贴板通常存储文件的路径而不是文件内容本身。因此,你需要先从剪贴板获取文件路径,再使用该路径访问文件信息。

示例代码(假设剪贴板中已有文件路径):

package main

import (
    "fmt"
    "github.com/atotto/clipboard"
    "os"
)

func main() {
    // 从剪贴板获取文本(假设是文件路径)
    path, err := clipboard.ReadAll()
    if err != nil {
        fmt.Println("Error reading clipboard:", err)
        return
    }

    // 检查文件是否存在
    fileInfo, err := os.Stat(path)
    if err != nil {
        fmt.Println("Error accessing file:", err)
        return
    }

    // 输出文件信息
    fmt.Println("File Name:", fileInfo.Name())
    fmt.Println("File Size:", fileInfo.Size())
}

对于其他操作系统(如macOS和Linux),可能需要使用不同的库或系统调用。此外,确保你的应用程序有适当的权限访问剪贴板和文件系统。对于更复杂的需求,可能需要深入研究相关操作系统的剪贴板机制和文件系统API。

回到顶部