新闻中心

C#怎么获取当前路径 C#获取程序运行目录方法

2025-12-14
浏览次数:
返回列表
最常用且安全的方式是使用AppDomain.CurrentDomain.BaseDirectory获取exe所在目录;Environment.CurrentDirectory返回当前工作目录但可能变化;跨平台推荐AppContext.BaseDirectory或Assembly.GetExecutingAssembly().Location。

c#怎么获取当前路径 c#获取程序运行目录方法

在C#中获取当前路径,关键要分清“当前工作目录”和“程序集所在目录”——这两者经常不同,选错会导致文件找不到。

获取程序运行的目录(即exe所在文件夹)

这是最常用的需求,比如读取同级配置文件或资源。推荐用 AppDomain.CurrentDomain.BaseDirectoryAssembly.GetExecutingAssembly().Location 配合 Path.GetDirectoryName

  • AppDomain.CurrentDomain.BaseDirectory:返回应用程序基目录(通常是exe所在文件夹,带末尾反斜杠)
  • Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location):更明确地取当前程序集(.exe)的目录,不带斜杠,需自行处理路径拼接

获取当前工作目录(类似cmd里的cd路径)

Environment.CurrentDirectory。注意:它可能被用户、调试器或第三方库修改,不一定等于exe位置。启动时默认是exe目录,但运行中可能变化。

  • 适合需要“相对当前命令行位置”的场景(少见)
  • 若需确保稳定,建议启动时就用 Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory 锁定

获取可执行文件的完整路径(含文件名)

直接用 Application.ExecutablePath(WinForms)或 Process.GetCurrentProcess().MainModule.FileName(通用):

Glean Glean

Glean是一个专为企业团队设计的AI搜索和知识发现工具

Glean 210 查看详情 Glean
  • Application.ExecutablePath 简洁,但仅限WinForms项目
  • Process.GetCurrentProcess().MainModule.FileName 全平台可用,但需引用 System.Diagnostics

跨平台兼容性提醒

.NET Core / .NET 5+ 推荐优先使用 AppContext.BaseDirectory(等价于 BaseDirectory)或 Assembly.GetExecutingAssembly().Location。避免硬编码 "..\..\" 这类相对路径,改用 Path.Combine 拼接:

  • 例如:Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config.json")
  • 路径分隔符自动适配 Windows()和 Linux/macOS(/)

基本上就这些。多数情况下,AppDomain.CurrentDomain.BaseDirectory 是最安全、最直接的选择。

上就是C#怎么获取当前路径 C#获取程序运行目录方法的详细内容,更多请关注其它相关文章!


# seo基础优化教程视频  # 操作指南  # 是一个  # 这是  # 找不到  # 相关文章  # 这类  # 热门网站建设加盟  # 京山县网站做优化怎么样  # 启动时  # 工业区卫浴网站推广策划  # 武汉快照seo公司  # 廊坊推荐网站推广优化  # 福州市网站优化  # 门窗抖音seo  # 韶关网站建设行业现状  # 建材行业线上推广营销  # linux  # 最常用  # 如何将  # .n  # cos  # c#  # 配置文件  # win  # macos  # ai  # mac  # app  # 编码  # windows  # json  # js 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 解决移动端滚动问题的overflow属性应用指南  cad怎么合并重叠的线段_cad清理重复重叠线条的操作方法  Yandex浏览器官方网页版入口 Yandex浏览器最新版官网  漫蛙MANWA漫画主页官方入口 漫蛙漫画最新在线阅读地址  Golang如何处理RPC请求负载均衡_Golang RPC请求负载均衡策略与实践  使用 Pandas 高效处理 .dat 文件:数据清洗与数值计算实战  HuggingFaceEmbeddings中向量嵌入维度调整的限制与理解  腾讯QQ邮箱官方网站_QQ邮箱网页版在线登录  海量存储:机器视觉智能化的核心基石  抓大鹅无需下载版 抓大鹅秒玩版入口  UC浏览器网页版登录入口官网 电脑版网址入口  神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正  谷歌google账号怎么注册账号 谷歌账号注册官方流程  Python多线程中正确使用sigwait处理SIGALRM信号  微博网页版官方账号登录 微博网页版内容浏览使用指南  Composer中的^和~符号代表什么_精通Composer版本号语义化约束  PHP高效扁平化嵌套数组:使用array_merge与数组解包操作符  搜狗浏览器如何使用密码生成器创建强密码 搜狗浏览器内置密码安全工具  Discord Slash 命令响应超时问题的异步解决方案  Golang如何优化内存分配与垃圾回收_Golang内存管理与GC优化实践  J*a递归快速排序中静态变量导致数据累积的陷阱与解决方案  AO3同人作品网入口 AO3搜索引擎官网永久地址  outlook中文官网入口地址 outlook官方中文版直达首页链接  html网页设计源代码怎么运行_运行html网页设计源代码步骤【指南】  虚幻5科幻题材ARPG大作遭取消!本是《奇异人生》厂商新作  163邮箱登录密码 163邮箱忘记密码找回  fishbowl官网免费版 fishbowl养鱼网站入口  Gmail邮箱申请注册直达_Gmail邮箱免费注册PC版官网入口2025  在FastAPI中利用lifespan与依赖注入高效管理Redis连接池  b站如何看历史记录_b站观看历史找回方法  yy漫画网页版官方入口_yy漫画官网登录页面链接  LINUX的perf命令入门_LINUX官方性能分析工具的使用与解读  Golang如何实现容器化日志收集与分析_Golang容器日志收集分析方法  CSS图片焦点样式实现教程:理解与应用tabindex属性  Lar*el 递归关系中排除指定分支的教程  jQuery Mask 插件中实现电话号码固定前导零的教程  Python自定义类排序:解决lambda键值访问TypeError的实践指南  QQ邮箱在线登录平台 QQ邮箱个人邮箱网页版入口  一加 14R 快充无反应_一加 14R 充电优化  怎样把文件彻底粉碎无法恢复_Windows下安全删除敏感数据【隐私保护】  AngularJS $http POST请求数据传递与Go后端接收实践  在WordPress中通过REST API获取BasicAuth保护的远程文章  J*aScript数据结构转换:将对象数组按类别分组  React项目中导航栏Logo自适应布局:避免裁剪与布局溢出  大麦的“候补”是什么意思 大麦候补购票规则【详解】  Win11怎么关闭快速启动_Win11彻底关机设置教程  整合Supabase认证与Django模型:跨模式迁移的解决方案  蛙漫移动版在线看 蛙漫手机浏览器直达入口  J*aScript中赋值与自增运算符的复杂交互与执行机制  PostgreSQL海量数据高效导入策略:Python与Django实践指南 

搜索