WPF将程序集里面嵌入的资源文件下载到本机磁盘中,将项目中的文件下载到桌面

首先需要把项目里面的文件设置为:嵌入的资源 ,鼠标右键属性里面设置,生成操作里面改为:嵌入的资源

csharp 复制代码
  

        /// <summary>
        /// 下载导入模板文件
        /// </summary>
        /// <param name="obj"></param>
        /// <exception cref="NotImplementedException"></exception>
        private void OnDownTemplate(object obj)
        {
            try
            {
                //桌面路径
                string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
                // 保存到桌面的文件完整路径
                string saveFilePath = Path.Combine(desktopPath, $"职业病体检导入人员模板{DateTime.Now.ToString("yyyyMMdd")}.xlsx");

                //模板文件         
                string templateName = "职业病体检导入模板.xlsx";
                Assembly assembly = Assembly.GetExecutingAssembly();

                // 返回所有可用资源
                var resourceList = assembly.GetManifestResourceNames();
                if (resourceList == null)
                {
                    LogX.Tip("错误:没有可用资源");
                    return;
                }
                //找出模板文件资源名称
                string resourceName = resourceList.FirstOrDefault(g => g.Contains(templateName));
                if (string.IsNullOrWhiteSpace(resourceName))
                {
                    LogX.Tip($"错误:没有找到模板文件:{templateName}");
                    return;
                }

                using (Stream resourceStream = assembly.GetManifestResourceStream(resourceName))
                {
                    if (resourceStream == null)
                    {
                        LogX.Tip("未找到嵌入的Excel模板资源,请检查资源名称是否正确 ");
                        return;
                    }

                    //  将资源流写入桌面文件
                    using (FileStream fileStream = new FileStream(saveFilePath, FileMode.Create, FileAccess.Write))
                    {
                        resourceStream.CopyTo(fileStream);
                    }
                    //LogX.Tip($"模板文件已经存放到桌面,模板文件保存路径:"{saveFilePath}"");
                    MessageBox.Show($"模板文件已经存放到桌面,模板文件保存路径:"{saveFilePath}"");

                }
            }
            catch (Exception ex)
            {
                var ex2 = ex.InnerException ?? ex;
                LogX.Tip("发生未知错误:" + ex2.Message);
            }

        }
相关推荐
神仙别闹几秒前
基于C++ MFC实现动态分区分配存储管理
开发语言·c++·mfc
for_ever_love__6 分钟前
python基础语法学习: 类型注解
开发语言·python·学习
caimouse11 分钟前
ReactOS 图形系统分析(46):DC 工具 — dcutil.c
c语言·开发语言
xixiaoyunya25 分钟前
从零搭建跨域互联网络:个人与小团队的轻量组网方案技术解析
开发语言·智能路由器·php
资源大佬星 课it30 分钟前
黑马 Java+AI新版V16零基础就业班视频课程百度网盘下载
java·开发语言·人工智能
zmzb010332 分钟前
Python课后习题训练记录Day193
开发语言·python
郝学胜-神的一滴37 分钟前
[简化版 GAMES 104] 现代游戏引擎 06:从Tick时序到邮局模型,拆解确定性世界的底层密码
开发语言·c++·游戏引擎·图形渲染·软件开发·opengl
二十雨辰37 分钟前
[Java]-微服务面试题
java·开发语言·微服务
不会代码的小猴37 分钟前
6. Qt网络编程
开发语言·c++·笔记·qt·算法
caimouse44 分钟前
ReactOS 图形系统分析(50):画笔子系统 — pen.c
c语言·开发语言·stm32