获取 Dos (8.3) 文件名

我有一个目录,其文件名包含“有趣”字符。我想获取文件的 DOS (8.3) 文件名。我怎样才能做到这一点?我选择的语言是 Go。


C:\...\foo>dir /x

 Volume in Laufwerk C: hat keine Bezeichnung.

 Volumeseriennummer: 329F-C2FE


 Verzeichnis von C:\...\foo


29.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.


(我将使用此文件名打开文件进行阅读。)


开心每一天1111
浏览 85回答 1
1回答

BIG阳

我找到了解决方案,但它并没有真正帮助我。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        }    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go