括號使用於目錄名稱的問題

最近很少寫一些技術性的東西,剛好這幾天工作上解決一個問題,就順手寫一下。

產品安裝程式用 InstallShield 撰寫,最近發現 32-bit 安裝程式在 64-bit Windows 無法安裝在預設給 32-bit 用的 C:\Program Files (x86) 路徑下面,想當然是安裝程式把括號視為無效的字元給擋住。

修改了判斷用的正則表示式(Regular Expression)重新編譯之後丟上測試機器去安裝。Done!

通常,測試員在測試安裝程式的時候,會在路徑這種欄位輸入一堆有的沒的字元(有效與無效)做測試。其實,Windows 或 Linux 下面使用括號是有效的。

Windows 下頭無效的字元除了 ASCII/Unicode 1~31 編碼字母外還有引號(")、小於(<)、大於(>)、管線(|)、Backspace (\b)、null (\0) 與 tab (\t)(資料來源為 MSDN – Path.GetInvalidPathChars Method (System.IO))。

安裝程式在設計安裝案例時,當然希望使用者輸入比較正常一點的字元,例如只有大小寫、數字以及幾種符號,沒把括號納入。但…當初誰知道 Windows 64-bit 會來個 C:\Program Files (x86) 這樣的設計呢?XD

同日閱讀

引用連結

http://kirin-lin.idv.tw/2009/11/19/2036/trackback/

發表留言

您的電子郵件並不會被顯示。 必要欄位已標記*星號

*
*

XHTML:留言會自動分行分段,您可使用這些標籤:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">