新闻中心
C#怎么获取当前程序路径 C#获取各种路径的方法汇总
程序路径应使用AppContext.BaseDirectory(.NET Core/.NET 5+)或Path.GetDirectoryName(Application.ExecutablePath)(WinForms),而非Environment.CurrentDirectory;配置文件建议置于程序目录并用Path.Combine拼接访问。

当前程序路径一般指可执行文件(.exe)所在目录,不是解决方案目录或项目目录。直接用 Application.ExecutablePath 或 System.Reflection.Assembly.GetExecutingAssembly().Location 获取完整路径,再用 Path.GetDirectoryName() 提取目录即可。别用 Environment.CurrentDirectory,它可能被用户或代码修改过,不可靠。
获取当前可执行文件所在目录(最常用)
这是绝大多数场景需要的“程序路径”,比如读取同级配置文件、写日志到本地文件夹:
-
Path.GetDirectoryName(Application.ExecutablePath)—— WinForms 项目推荐,简洁稳定 -
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)—— 控制台、WPF、类库通用,GetExecutingAssembly返回当前运行代码所在的程序集 -
AppContext.BaseDirectory—— .NET Core / .NET 5+ 推荐,尤其在发布为单文件时更准确(注意:单文件发布下Location可能为空或指向临时解压路径)
获取当前工作目录(慎用)
Environment.CurrentDirectory 返回进程启动时的工作目录,不是程序文件位置。命令行中 cd 到某目录再运行 exe,这里就会是那个目录。调试时 VS 默认设为项目目录,但发布后行为不确定:
- 仅在明确需要“用户启动上下文”时才用(如批量处理当前目录下的文件)
- 不要用它替代程序路径,否则部署后容易出错
获取项目/源码相关路径(仅开发阶段参考)
这些路径在编译后不存在,不能用于生产环境:
QoQo
QoQo是一款专注于UX设计的AI工具,可以帮助UX设计师生成用户角色卡片、用户旅程图、用户访谈问卷等。
172
查看详情
-
Directory.GetCurrentDirectory()—— 同Environment.CurrentDirectory,开发时常是项目根目录,但不保证 -
AppDomain.CurrentDomain.BaseDirectory—— 通常和AppContext.BaseDirectory一致,.NET Framework 时代常用,新项目优先用后者 -
typeof(Program).Assembly.Location—— 和GetExecutingAssembly().Location类似,但指定类型更明确,适合在类库中获取自身程序集位置
读写配置或资源文件的实用建议
路径只是手段,目标是可靠访问文件:
- 配置文件(如 appsettings.json)建议放在程序目录,用
Path.Combine(AppContext.BaseDirectory, &
quot;appsettings.json") - 想让程序“自带”资源,把文件属性设为
Copy to Output Directory = Copy always,然后按相对路径读取 - 避免硬编码绝对路径;跨平台注意用
Path.Combine()拼接,别用+或/
基本上就这些。记住核心:要“程序放哪儿”,就用 AppContext.BaseDirectory(新项目)或 Path.GetDirectoryName(Application.ExecutablePath)(WinForms),其它路径按需谨慎选用。
以上就是C#怎么获取当前程序路径 C#获取各种路径的方法汇总的详细内容,更多请关注其它相关文章!
# 这是
# 微信推广通过营销吧tt团队
# 伊犁抖音关键词排名公司
# 锡山区运营推广招聘网站
# 朔州网站建设好吗
# 通辽网站关键词优化排名
# 拼车网站怎么做推广赚钱
# 快速入门seo 霸屏
# 六神花露水营销策划推广
# 常德视频营销推广企业
# 二手车seo推广哪里好
# 相关文章
# 放在
# 序列化
# 就会
# js
# 类库
# 可执行文件
# 如何将
# 设为
# .net
# c#
# 配置文件
# win
# 解压
# ai
# app
# 编码
# json
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
漫蛙漫画登录站点 漫蛙2正版漫画快速访问
我的世界mc.js免费游戏直接能玩 我的世界mc.js小游戏免费秒玩入口
QQ邮箱官方网站登录入口_QQ邮箱网页版在线使用
品牌机怎么重装系统 联想/戴尔/惠普笔记本恢复出厂系统教程
Composer的 "conflict" 字段有什么用_如何声明不兼容的包以避免依赖冲突
如何提高微信支付的安全性_微信支付安全防护与设置建议
c++项目目录结构应该如何组织_c++工程化项目结构规范
AO3网页版合集入口 Archive of Our Own同人作品浏览指南
解决 Express.js 中 PUT 请求密码修改失败的路由配置指南
c++如何使用Catch2编写单元测试_c++简洁易用的BDD风格测试框架
Pandas DataFrame:高效添加条件计算列
使用Pandas转换并合并DataFrame:多列映射至统一结构
Spring Boot内嵌服务器与J*a EE全栈特性:选择与部署策略
MAC如何将整个网页截长图_MAC使用Safari的导出为PDF或第三方工具
京东京造J1和网易云音乐氧气真无线有什么不同_国产电商蓝牙耳机音质对比
Pygame教程:解决用户输入与游戏状态更新不同步问题
小米汽车11月交付量突破40000台!雷军:将继续努力
今日头条怎么同步内容到抖音_今日头条内容同步到抖音教程
CSS布局:解决全屏元素100%尺寸与外边距导致的页面溢出问题
如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略
2026年发布! 美少女养成动作RPG《神剑少女战记》发布实机演示
Django通过AJAX异步上传图片并保存至模型的完整指南
c++20的std::jthread是什么_c++可中断线程与RAII式管理
mc.js官网登录入口 mc.js官方登录入口最新版
Go调试环境为何无法启动_Go调试器启动失败原因与解决策略
Python实现多节点属性重叠度分析教程
如何在低配置电脑上搭建轻量级J*a环境_占用更小的环境选择技巧
汽水音乐在线解析 汽水音乐在线解析入口
Yandex浏览器官方网页版入口 Yandex浏览器最新版官网
妖精漫画网页版登录入口免费_妖精漫画官网主页直接阅读漫画
C++如何解决segmentation fault_C++段错误调试与原因分析
PHP URL参数传递与500错误调试指南
黑猫投诉统一入口官网 消费者权益保护投诉平台
C#中解析不规范的HTML为XML 常见的坑与解决办法
J*a里如何实现订单支付与库存同步功能_支付库存同步项目开发方法说明
Golang如何使用context实现超时取消_Golang context超时取消模式实践
搜狗浏览器如何使用密码生成器创建强密码 搜狗浏览器内置密码安全工具
如何在CSS中使用visited与link控制链接颜色_visited link伪类配合
win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】
TikTok搜索结果不显示如何解决 TikTok搜索刷新优化方法
深入理解Google Cloud Datastore查询:祖先路径与数据一致性
抖音创作助手登录入口_抖音创作辅助工具官网直达
Pandas DataFrame 多条件优先级排序与排名
Win11怎么查看电脑配置_Win11硬件配置检测工具使用
Spring Boot嵌入式服务器与J*a EE:功能支持深度解析
狙击外星人小游戏开始_狙击外星人小游戏立即开始
Win10如何开启蓝牙功能_Windows10找不到蓝牙开关解决方法
ACG动漫视频网入口 ACG动漫*免费正版观看地址
CSS Box Model与弹性按钮:维持布局稳定的动画实践
单12V-2×6实现为RTX 5090供电750W!甚至都没敢跑分


2025-12-16
浏览次数:次
返回列表
quot;appsettings.json")