檔案關聯的最佳作法
下列清單是使用檔案關聯時應該使用的最佳做法。
- 不要從登錄複製檔案關聯
- 盡可能避免Hard-Coding登錄的路徑
- 一律以引號換行展開字串
- 不要混淆自動播放/自動執行與檔案關聯
- 請勿將 Internet Explorer MIME 資料庫與檔案關聯混淆
- 使用正確格式和已設定版本的 ProgID
- 請勿使用簡短副檔名
- 在 IANA MIME 資料庫中註冊新的檔案類型
- 向 Windows Web 服務註冊檔案關聯
- 相關主題
不要從登錄複製檔案關聯
我們建議您不要從登錄複製現有的檔案關聯。 這通常會導致傳播格式不佳的檔案關聯。 相反地,您應該遵循 檔案關聯範例案例中所述的步驟。
盡可能避免Hard-Coding登錄的路徑
就像程式硬式編碼路徑可能會導致問題一樣,將硬式編碼路徑寫入登錄也可能會導致問題。 相反地,您應該使用登錄擴充字串 (REG_EXPAND_SZ) ,以在適用的情況下提供路徑獨立性。 例如,不要使用此方法:
HKEY_CLASSES_ROOT
MyVendor.MyProgram.1
DefaultIcon
(Default) = C:\WINNT\hta.exe,1
您應該使用此方法:
HKEY_CLASSES_ROOT
MyVendor.MyProgram.1
DefaultIcon
(Default) = "%SYSTEMROOT%\hta.exe,1"
一律以引號換行展開字串
展開字串可以在展開時包含空格。 因為空格通常會解譯為引數分隔符號,所以在某些情況下會造成問題。 例如,叫用 MyProgram 的命令可以儲存在登錄中,如下所示:
%SYSTEMROOT%\MyProgram %1 %2
MyProgram 預期 %1 是檔案名的完整路徑,而 %2 是表示某些動作的切換。 如果使用 C:\Program Files\My Documents\document.txt 和 /print引數執行此命令,而且假設有 C:\WINNT 的 SYSTEMROOT,它會展開至:
C:\WINNT\MyProgram C:\Program Files\My Documents\document.txt /print
在此情況下,MyProgram 會解譯第一個引數是 C:\Program,而第二個引數是 Files\My,這不是預期的行為。 不過,不論引數是否包含空格,如果展開字串以引號括住,都會正確解譯,如下所示:
"%SYSTEMROOT%\MyProgram" "%1" "%2"
不要混淆自動播放/自動執行與檔案關聯
檔案關聯類似于自動執行/自動執行一些方式。 不過,自動播放/自動執行提供與檔案關聯所提供的不同功能。 如需詳細資訊,請參閱 建立已啟用自動執行功能的 CD-ROM 應用程式。
請勿將 Internet Explorer MIME 資料庫與檔案關聯混淆
檔案關聯類似于 Windows Internet Explorer MIME 資料庫,在該檔案類型中可以 (,而且應該) 包含 MIME 類型定義。 不過,Internet Explorer MIME 資料庫與檔案關聯不同。
使用正確格式和已設定版本的 ProgID
一律使用 已設定版本的 ProgID,即使只有一個 ProgID 版本也一樣。 已設定版本的 ProgID 有助於避免 ProgID 衝突和覆寫。 它們也會讓不同版本的應用程式共存。
請勿使用簡短副檔名
長副檔名提供下列優點:
- 簡短延伸模組的長度有限,使其容易發生 延伸模組衝突。 當相同的副檔名用來分類多個檔案類型時,就會發生延伸模組衝突。 使用長延伸模組可大幅降低衝突的機會。
- 簡短檔案名通常有點模糊。 長延伸模組通常更有意義,因為其他資訊可以內嵌在延伸模組中。
如需詳細資訊,請參閱 副檔名。
在 IANA MIME 資料庫中註冊新的檔案類型
網際網路指派號碼授權單位 (IANA) 保留已註冊 MIME 類型的公用資料庫。 定義新的公用檔案類型時,建議您也為檔案類型定義 MIME 類型,並使用 IANA 註冊此類型。 註冊不需要任何成本。
向 Windows Web 服務註冊檔案關聯
應用程式開發人員可以使用 Windows Web 服務註冊,讓使用者用來尋找可在特定檔案類型上運作的應用程式。 註冊 Web 服務的程式詳述于 Windows 檔案關聯系統上執行緒序 (KB 929149) 。
相關主題