在 Windows 中获取替代文件名

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案1】:

GetShortPathName()

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

【讨论】:

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

以上是关于在 Windows 中获取替代文件名的主要内容,如果未能解决你的问题,请参考以下文章

使用Windows 2008R2中的NFS替代Samba协议,解决Windows 与Linux共享文件的问题

linux的许可证替代[关闭]

Windows 上可靠的 File.renameTo() 替代方案?

gulp.src()或它在gulp任务之外的替代方案

如何在 iPad 上实现 iTunes 文件共享的替代方案?

用于 64 位 Windows 7 机器的 Microsoft ODBC 驱动程序的替代品(将 Excel 数据获取到 SQL)