当前位置: 首页 > news >正文

4.1 C#获取目录的3个方法的区别

C#中常用有如下3个获取目录的方式如下

1.Directory.GetCurrentDirectory():获取当前工作目录,工作目录可能被用户或其他代码修改。尽量少用。(似乎只要在运行中使用另存为或者打开某个文件夹,当前工作目录就修改)

2.Application.StartupPath():  获取应用程序的启动目录,返回不带末尾的'\'

3.AppDomain.CurrentDomain.BaseDirectory:获取应用程序的启动目录,返回带有'\'


结论:

  • 通用场景:优先使用 AppDomain.CurrentDomain.BaseDirectory(更安全、跨平台兼容)。

  • WinForms 专用:若需要无末尾反斜杠的路径,可使用 Application.StartupPath,但需注意平台限制。

  • Web 或服务:必须使用 AppDomain.CurrentDomain.BaseDirectory,避免路径错误

【修改当前工作路径的代码例子】:
static void Main()
    {
        // 获取当前工作目录
        string currentDir = Directory.GetCurrentDirectory();
        Console.WriteLine($"当前工作目录: {currentDir}");

        // 尝试修改工作目录
        Directory.SetCurrentDirectory(".."); // 切换到上级目录
        Console.WriteLine($"修改后的工作目录: {Directory.GetCurrentDirectory()}");
    }

相关文章:

  • 【考研政治】2026考研政治马原部分关键词带背 导论
  • Mysql基本查询(上)
  • 情绪分析和深度强化学习确实能够在一定程度上增强股市预测
  • 实战-MySQL5.7升级8.0遇到的四个问题
  • 解决安卓so库异常无法打印堆栈的问题
  • 网络拓扑图
  • 区块链驱动金融第九章——解锁比特币 “平台” 的多元潜力
  • vue中ts引入组件,无法找到模块xxx的声明文件。xxx隐式拥有 “any“ 类型。
  • HTTP长连接与短连接的前世今生
  • 【商城实战(63)】配送区域与运费设置全解析
  • Python字典
  • Flume-试题
  • TCP/IP 协议栈深度解析
  • 在我的电脑上构建ollama+deepseek-r1-7b运行环境;
  • C++相关
  • 泛目录:无极智能SEO 流量引擎
  • 【Qt】常用控件
  • python3面试题23个(设计模式、面向对象、正则)
  • 特殊行车记录仪DAT视频丢失的恢复方法
  • 吴恩达机器学习笔记复盘(十一)逻辑回归的代价和损失函数
  • NFL球员将参加洛杉矶奥运会腰旗橄榄球比赛
  • 第九届非遗节首设主宾国主宾城机制,非遗品牌IP授权获关注
  • 小马智行一季度营收增12%:Robotaxi收入增长两倍,预计车队规模年底到千台
  • 凤阳鼓楼脱落瓦片2023年刚经历修复,凤阳县文旅局长回应是否违建等焦点问题
  • 在深化教育科技人才一体发展上打头阵、当尖兵!陈吉宁调研复旦大学
  • 黄仁勋:美国芯片管制完全错误,阻碍别人发展只会激励他们更努力