我想将长文件名/路径转换为短文件名(8.3)。 我正在开发一个调用只接受短文件名的命令行工具的脚本。将长文件名转换为短文件名(8.3)
,所以我需要转换
C:\Ruby193\bin\test\New Text Document.txt
到
C:\Ruby193\bin\test\NEWTEX~1.TXT
到目前为止,我发现How to get long filename from ARGV它使用WIN32API将短到长文件名(我想要什么,相反实现)。
有什么办法可以在Ruby中获取短文件名?
我没有设法将该代码调整到_GetShortPathName_。你是否熟悉这一点,并可以提供一个例子? – user1251007 2012-04-19 14:11:50
在C++中添加了代码,不能帮助您使用Ruby代码,但我想这应该与Peter在您的链接帖子中的帖子中一样。请注意,通常您应该首先使用NULL作为短名称并将其作为大小0调用它。这将返回所需的大小,然后用适当的大小和分配的缓冲区再次调用它。 – msam 2012-04-19 14:45:59
感谢您的代码,我终于设法将其移植到Ruby代码 - 请参阅我的回答 – user1251007 2012-04-20 10:40:13