日期:2014-05-16  浏览次数:20753 次

WPF,请问程序集资源的问题

在WPF项目中,添加了一个pp.txt文档,使用了默认的生成操作"Resource",复制到输出目录为"不复制",于是,下面的代码会找不到文件:

private void Button_Click(object sender, RoutedEventArgs e)
{
    string s1 = "pp.txt";
    if (!File.Exists(s1))  //确定指定的文件是否存在
    {
        MessageBox.Show("文件不存在");
        return;
    }
    else
        MessageBox.Show("文件存在");
}


但是,当把pp.txt文件的生成操作修改为"内容",复制到输出目录为"始终复制",上面的代码就能找到文件了。

于是,我有了下面的问题:
1:生成操作为"Resource"的话,那就意味着pp.txt是资源文件了吧,也就是程序集资源,它是编译到应用程序的主可执行程序集中去了的,这样,都找不到吗?
2:那为什么改成"内容",就能找到了呢?
------解决方案--------------------
跟Resource, Content没关系。
只有复制到输出目录为"复制"的时候,这个图片才能复制到debug目录下,跟.exe文件一个目录。
if (File.Exists(s1))  就是在.exe所在的目录寻找这个图片,所以只有输出目录设置为"复制"的时候,文件才会被copy到那里,上面代码才能找到文件。
------解决方案--------------------
生成操作位资源或内容。都是可以找到文件的,只不过查找的方式不同而已。
http://www.cnblogs.com/ListenFly/archive/2013/03/13/2953096.html