//代码处理的问题是在winform打包程序中调用自身文件。此时我们如果调用Application.GetDirector().....不能获取到文件,所以通过下面代码进行处理。当然也可以将文件一起打包到安装程序,获取安装路径。
//在添加文件到project后,将其属性设置为嵌入到项目中,这样才能读取文件内容
private void GetFile()
{
    string file = GetResourceText("ProjectName.FileName");
    StreamWriter wr = new StreamWriter("D:\\test.xml");
    wr.Write(file);
    wr.close();
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(file);
    doc.Save("D:\\test.xml");
}
//用StreamReader读取文件.
private static string GetResourceText(string resourceName)
        {
            Assembly asm = Assembly.GetExecutingAssembly();
            string[] resourceNames = asm.GetManifestResourceNames();
            for (int i = 0; i < resourceNames.Length; ++i)
            {
                if (string.Compare(resourceName, resourceNames[i], StringComparison.OrdinalIgnoreCase) == 0)
                {
                    using (StreamReader resourceReader = new StreamReader(asm.GetManifestResourceStream(resourceNames[i])))
                    {
                        if (resourceReader != null)
                        {
                            return resourceReader.ReadToEnd();
                        }
                    }
                }
            }
            return null;
        }
posted on 2008-07-14 21:57  yo  阅读(367)  评论(0编辑  收藏  举报