如何在 Adobe AIR 中将带有路径的文件名转换为短文件名(DOS 样式)?
如何在 Adobe AIR 中将带有路径的文件名转换为短文件名(DOS 样式)?
例如将下一个路径转换
"C:\Program Files\Common Files\Adobe AIR\Versions\1.0\Resources\Adobe AIR Updater.exe"
为
"C:\PROGRA~1\COMMON~1\ADOBEA~1\VERSIONS\1.0\RESOUR~1\ADOBEA~1.EXE"
有没有算法?
How to convert file name with path to short file name (DOS style) in Adobe AIR?
For example convert next path
"C:\Program Files\Common Files\Adobe AIR\Versions\1.0\Resources\Adobe AIR Updater.exe"
to
"C:\PROGRA~1\COMMON~1\ADOBEA~1\VERSIONS\1.0\RESOUR~1\ADOBEA~1.EXE"
Is there any algorithm?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
假设您的文本部分是字符串变量,您可以使用“\”作为分隔符来分割它。然后,您将拥有一个数组,可用于检查每个块的长度是否超过 8 个字符。在循环数组时,您可以砍掉每个长块的最后一个字符并放入 ~1。由于您处于循环中,因此您可以逐步将所有这些更改添加到临时变量中,这将在最后为您提供最终的编辑结果。
唯一有点棘手的部分是注意最后的 .exe 部分。
所以,如果我是你,我会开始阅读 String.split()、String.substring()、for 循环、数组
Assuming your text portion is a string variable, you can split it by using "\" as delimiter. Then, you will have an array which you can use to check if each block is longer than 8 characters. While looping the array you can chop the last characters of each long block and put ~1. Since you're in the loop, you can progressively add to a temporary variable all these changes which will give you the final edited result at the end.
The only part that's a bit tricky is to pay attention to .exe part at the end.
So, if I were you, I'd start reading on String.split(), String.substring(), for loop, arrays
这是我的方便方法,如下所示:
Here's my handy method that does this below: