airshort-filenames

How to convert file name with path to short file name (DOS style) in Adobe AIR?


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?


Solution

  • 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