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

        }
相关推荐
lsswear7 小时前
Python 并发 线程
开发语言·python
郑州光合科技余经理7 小时前
国际版外卖系统:税率字段怎么和订单主流程解耦
android·java·开发语言·前端·后端·php·ai编程
软件课代表CiCi7 小时前
运行库是什么?电脑缺运行库怎么办?c++运行库缺失修复全攻略
开发语言·c++·windows·电脑·dll修复·dll丢失·运行库
Ivanqhz7 小时前
MLIR OpBuilder
开发语言·python·mlir
红宝村村长9 小时前
windows笔记本双系统ubuntu设置
开发语言
菜鸟~noob23310 小时前
【电子战】第15篇:混合定位——TDOA/FDOA/AOA 联合【含matlab代码】
开发语言·matlab
Dreams_l11 小时前
死信队列和延迟队列介绍
java·开发语言
Zenova EdgeOS12 小时前
Python 工业边缘 redis-py 异步实战
开发语言·redis·python
君顾112 小时前
西安 24 小时自助健身房系统开发实战指南
java·开发语言·健身房
小羊没烦恼!13 小时前
Memory 记忆设计讨论:Agent Memory 的数据模型可以怎么设计
java·开发语言·前端·c++·c#