在我的 XML 文件中,我尝试使用文件路径;它是这样开始的:
<value key="myPath"><![CDATA[C:\Program Files\myFile.exe]]>
然后,当我启动我的应用程序时,它总是说,找不到文件:
找不到文件 C:\Program
所以,显然它仍然被困在程序和文件之间的空间中。我以为我的 CDATA 会解决这个问题。
我错到什么程度?
在我的 XML 文件中,我尝试使用文件路径;它是这样开始的:
<value key="myPath"><![CDATA[C:\Program Files\myFile.exe]]>
然后,当我启动我的应用程序时,它总是说,找不到文件:
找不到文件 C:\Program
所以,显然它仍然被困在程序和文件之间的空间中。我以为我的 CDATA 会解决这个问题。
我错到什么程度?
尝试在路径周围放置双引号。
<value key="myPath"><![CDATA["C:\Program Files\myFile.exe"]]>
如果您想进一步清理它,您可能也不需要使用 CDATA。
这可能不是 XML,它可能是您的应用程序在空格后终止。
几种可能
如果没有更多关于如何执行 XML 的信息,很难说。
默认情况下,XML 不会弄乱您的空格。它也不关心文件扩展名之前的退格、冒号或点。实际上,大多数有效路径字符也是有效的 XML 字符。(我认为它们实际上都是有效的 XML 文本节点内容。)
问题肯定出在 XML 处理上,而不是 XML 内容上。
如果我正在设计这个应用程序,我会存储 URI 而不是文件名。在通常使用 XML 的世界中,这似乎是正确的方法。当然,您可以在 XML 中存储您喜欢的任何内容,如果需要存储 Windows 文件名,那么欢迎您这样做。
它不起作用的事实与 XML 无关。从 XML 中提取文件名并尝试打开文件的接收应用程序做错了:它要么弄乱了文件名本身,要么将其传递给无法处理包含空格的文件名的 API。
你可以使用"e;Path%quote;
技术。很脏,但工作正常,