在 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共享文件的问题
Windows 上可靠的 File.renameTo() 替代方案?
如何在 iPad 上实现 iTunes 文件共享的替代方案?
用于 64 位 Windows 7 机器的 Microsoft ODBC 驱动程序的替代品(将 Excel 数据获取到 SQL)