为了账号安全,请及时绑定邮箱和手机立即绑定

获取 Dos (8.3) 文件名

获取 Dos (8.3) 文件名

Go
开心每一天1111 2023-04-17 14:55:17
我有一个目录,其文件名包含“有趣”字符。我想获取文件的 DOS (8.3) 文件名。我怎样才能做到这一点?我选择的语言是 Go。C:\...\foo>dir /x Volume in Laufwerk C: hat keine Bezeichnung. Volumeseriennummer: 329F-C2FE Verzeichnis von C:\...\foo29.09.2018  16:22    <DIR>                       .29.09.2018  16:22    <DIR>                       ..23.07.2009  01:52             5.526 CW9463~1.PDF cöw.pdf               1 Datei(en),      1.922.706 Bytes               0 Verzeichnis(se), 48.235.646.976 Bytes frei我想获取CW9463~1.PDF文件名而不是cöw.pdf.(我将使用此文件名打开文件进行阅读。)
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

我找到了解决方案,但它并没有真正帮助我。


import (

    "golang.org/x/sys/windows"

)


func GetShortPathName(name string) (path string, err error) {

    lp, err := windows.UTF16PtrFromString(name)

    if err != nil {

        return "", err

    }

    n := uint32(100)


    for {

        buf := make([]uint16, n)

        n, err = windows.GetShortPathName(lp, &buf[0], uint32(len(buf)))

        if err != nil {

            return "", err

        }

        if n <= uint32(len(buf)) {

            return windows.UTF16ToString(buf[:n]), nil

        }

    }

}


查看完整回答
反对 回复 2023-04-17
  • 1 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信