absmiddle 長檔名轉 8.3 格式法則


[問題] [版主] 此篇文章經清大資科 win95 版主 pb 同意後轉貼 dyliu@pc4.hinet.net(四眼的王蟲): 我想要寫一個程式, 它需要能輸入一個 Unix 上的檔名, 而將這個檔名轉變成 DOS 下 的合法檔名, DOS 檔名格式除了 8.3 的限制外還有甚麼限制? [解答] Eric.bbs@firebird (Cater): 下面是從 Inside Windows NT File System 這本書看來的,它說明了 NTFS 把長檔名 轉成 8.3 格式的法則: 1. 先把不合法的字元移掉(可惜,它沒有說哪些字元是不合法的...),再把 unicode 及空白字元也移走,跟著把最前面與最後的「.」拿掉,接著再 把中間的「.」也拿掉,只留下最後一個「.」。 2. 把「.」之前的字元刪成 6 個以下,並加上「~1」。把「.」之後的字元 刪成 3 個。 3. 把所有字元都轉成大寫。 4. 若已有重複的檔名,則把步驟 2 的「~1」加一,變成「~2」...。 以上大概是 NTFS 把長檔名轉成短檔名的方式,供你參考一下,希望對你有一點幫助:)
上一層目錄