我试图使用Go读取快捷方式()文件(.lnk)的目标文件/目录。
对于目录中的所有文件,我已经有了一个循环,并且我可以成功地识别它是带有IsDir()
的dir还是文件IsRegular()
。现在,我需要一种方法来读取如果它是一个链接,如果它是一个.lnk
,它的路径,以便我可以打印它。
我找不到任何方法来做这个,我一直在寻找,但什么也没有出现。有什么想法吗?
发布于 2017-05-24 21:30:57
你需要阅读Microsoft定义的lnk二进制格式
在Go中,它的结构将转换为(如在exponential-decay/shortcuts
中使用的)
//structs that make up the shortcut specification [76 bytes]
type ShellLinkHeader struct {
HeaderSize [4]byte //HeaderSize
ClassID [16]byte //LinkCLSID
LinkFlags uint32 //LinkFlags [4]byte
FileAttr uint32 //FileAttributes [4]byte
Creation [8]byte //CreationTime
Access [8]byte //AccessTime
Write [8]byte //WriteTime
FileSz [4]byte //FileSize
IconIndex [4]byte //IconIndex
ShowCmd [4]byte //ShowCommand
//[2]byte HotKey values for shortcut shortcuts
HotKeyLow byte //HotKeyLow
HotKeyHigh byte //HotKeyHigh
Reserved1 [2]byte //Reserved1
Reserved2 [4]byte //Reserved2
Reserved3 [4]byte //Reserved3
}
这个项目应该给你一个如何解码快捷目标的想法。
https://stackoverflow.com/questions/44168401
复制相似问题