1

XML ファイルで、ファイルへのパスを使用しようとしています。それは次のように始まります:

<value key="myPath"><![CDATA[C:\Program Files\myFile.exe]]>

次に、アプリを起動すると、常に「ファイルが見つかりません」と表示されます:

ファイル C:\Program が見つかりません

したがって、明らかに、プログラムとファイルの間のスペースにまだ巻き込まれています。私のCDATAがそれを修正すると思いました。

私はどれほど間違っていますか?

4

5 に答える 5

1

このアプリケーションを設計する場合、ファイル名ではなく URI を保存します。これは、XML が通常使用される世界では適切なアプローチのように思えます。もちろん、好きなものを XML に保存することもできます。Windows のファイル名を保存する必要がある場合は、それを行ってもかまいません。

それが機能しないという事実は、XML とは何の関係もありません。XML からファイル名を抽出し、ファイルを開こうとしている受信側アプリケーションが何か間違っています。ファイル名自体を台無しにしているか、スペースを含むファイル名を処理できない API に渡しています。

于 2012-06-14T07:52:16.870 に答える
1

パスを二重引用符で囲んでみてください。

<value key="myPath"><![CDATA["C:\Program Files\myFile.exe"]]>

さらにクリーンアップしたい場合に備えて、おそらく CDATA も使用する必要はありませんでした。

于 2012-06-13T19:51:49.650 に答える
1

これは XML ではない可能性があります。スペースの後にアプリが終了している可能性があります。

いくつかの可能性

  • パスを引用符で囲む " "
  • スペースのエスケープ C:\Program\ Files
  • スペースから %20 へのスペースの URL エンコード

XML の実行方法に関する詳細情報がなければ、言うのは難しいです。

于 2012-06-13T19:52:01.060 に答える
1

デフォルトでは、XML は空白を台無しにしません。また、バックスペース、コロン、またはファイル拡張子の前のドットも気にしません。実際、有効なパス文字のほとんどは、有効な XML 文字でもあります。(実際にはすべて有効な XML テキスト ノード コンテンツだと思います。)

問題は、XML コンテンツではなく、XML 処理にあることは間違いありません。

于 2012-06-13T19:54:01.260 に答える
0

&quote;Path%quote;テクニックが使えます。かなり汚れていますが、正常に動作します。

于 2012-10-31T19:04:35.030 に答える