【问题标题】:Get alternative filename in windows在 Windows 中获取替代文件名
【发布时间】:2010-12-31 01:54:52
【问题描述】:

我正在 Windows 上运行我的程序,它将枚举目录中的文件并将其传递给其他处理文件的库。虽然我的程序确实支持 unicode,但库不支持,所以我必须将 unicode 文件路径和名称转换为 ANSI。只要该文件名中没有 unicode 字符,它就可以正常工作。

我知道 windows 中的每个文件和目录都可以通过它的 8.3 名称访问,但我不知道如何通过 windows api 获取该名称。

【问题讨论】:

    标签: c++ windows winapi unicode filesystems


    【解决方案1】:

    GetShortPathName()

    需要注意的是短名生成可以关闭(fsutil)

    【讨论】:

    • 正确。请注意,如果用户在卷上禁用了 8.3 生成,则此调用可能会失败。 fsutil 命令行工具可以告诉你。
    • @EricLaw -MSFT-:谢谢,我已经在编辑答案了,只需要找到 fsutil 链接 :)
    • 8.3 名称还有其他问题,它们在复制操作期间不是 100% 持久的,我猜您也可能会用完名称(几乎就像哈希冲突)
    • 正是我在寻找但找不到的东西。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多