【发布时间】:2013-05-29 01:36:39
【问题描述】:
我正在尝试加载已添加到项目中的资源,它告诉我:
路径中有非法字符。
现在,资源的名称是:ShortcutList.txt。我看不出有什么违法的地方。我使用的代码是:
public void InitShortcuts()
{
try
{
string s = File.ReadAllText(Properties.Resources.ShortcutList);
if (!String.IsNullOrEmpty(s))
{
MessageBox.Show(s);
}
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}
}
但正如我上面所说,它只是告诉我路径中有非法字符。如何?这不像是我在搞砸路径或其他任何事情。
我已将 ShortcutList.txt 设置为嵌入式资源并“如果较新则复制”(我还尝试了该列表中的所有其他选项!)。
任何想法我可能做错了什么?
【问题讨论】:
-
ShortcutList 是否包含任何非字母数字字符?
-
如果在调试器下查看
Properties.Resources.ShortcutList的值,它是什么意思? -
资源不是在安装或执行时刷新到客户端系统的文件,因此资源不会变成指向物理文件系统上资源的路径。这将是资源本身,所以加载到
MemoryStream然后FileStream等等。 -
查看这个stackoverflow.com/questions/3314140/… 堆栈溢出答案。我之前在读取嵌入式资源时遇到问题时使用它。
-
文件内容包含字母、数字和符号,如[, ], ?和 &。它还将包括其他普通符号。