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);
            }

        }
相关推荐
爱吃大芒果9 分钟前
Flutter for OpenHarmony前置知识:Dart 语法核心知识点总结(下)
开发语言·flutter·dart
Ulyanov18 分钟前
从桌面到云端:构建Web三维战场指挥系统
开发语言·前端·python·tkinter·pyvista·gui开发
星火开发设计28 分钟前
C++ 函数定义与调用:程序模块化的第一步
java·开发语言·c++·学习·函数·知识
cypking31 分钟前
二、前端Java后端对比指南
java·开发语言·前端
钟离墨笺35 分钟前
Go语言--2go基础-->map
开发语言·后端·golang
lsx2024061 小时前
DOM CDATA
开发语言
Tony Bai1 小时前
Go 语言的“魔法”时刻:如何用 -toolexec 实现零侵入式自动插桩?
开发语言·后端·golang
Coding茶水间1 小时前
基于深度学习的交通标志检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
开发语言·人工智能·深度学习·yolo·目标检测·机器学习
a努力。2 小时前
字节Java面试被问:TCP的BBR拥塞控制算法原理
java·开发语言·python·tcp/ip·elasticsearch·面试·职场和发展
jiaguangqingpanda2 小时前
Day24-20260120
java·开发语言·数据结构