最近、Windows CE 6.0 のフォント ファイルを操作していました (C# Compact-Framework v2.0 と AddFontResource を使用して開発)。「Angsana New」(タイ語用) を追加した後、読み込んだ Angsana.ttf ファイルが削除できないことに気付きました。考えられるすべての方法を試しました。
* Re-running my program and using RemoveFontResource
* Changing to another language that uses an in-built font or another I supply
* Renamed the file (which is allowed, why?
* Manually checking the registry to see if "Angsana" is referenced anywhere
* Power down the mobile device and back up again
* Loaded the Windows CE command prompt and used the command:
del /f Angsana.ttf
不思議なことに、フォント ファイルの名前を「Angsana.ttf」から「Angsana_2.ttf」に自由に変更できますが、削除できません。さらに興味深いのは、Angsana.ttf をコピーすると (「Angsana.ttf のコピー」を作成するため)、そのコピーも削除できないことです。これは、ファイル (およびそのコピー) をロックしている何らかの属性またはシステム プロセスがあることを強く示唆していますが、一体何なのでしょうか。
エクスプローラーからのエラーメッセージは次のとおりです:
"Cannot delete 'Angsana.ttf': There has been a sharing violation. The source or destination may be in use."
コマンド プロンプトからのエラーは単純です:
"Cannot remove Angsana.ttf"
一体何が起こっているんだ??
更新: ファイル「Angsana.ttf」は「Fonts」というフォルダにあります。「Fonts」と同じレベルに「Fred」という新しいフォルダを作成すると、TTF ファイルを新しいフォルダに切り取って貼り付けることができます。これで、新しいフォルダ「Fred」を、そこに含まれる TTF ファイルも含めて削除できます (または、それが失敗した場合は、電源を入れ直すとフォルダ全体を削除できます)。
私のモバイル デバイスは、起動時に Fonts フォルダーに何らかの「ロック」(正しい用語でしょうか?) をかけているようです。