当前位置: 首页 > 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()}");
    }

http://www.dtcms.com/a/88735.html

相关文章:

  • 【考研政治】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视频丢失的恢复方法
  • 吴恩达机器学习笔记复盘(十一)逻辑回归的代价和损失函数
  • 为什么IE不支持{‘a‘:11,‘b‘:‘s2‘} 单引号的JSON数据
  • leetcode二叉树3
  • thinkphp漏洞再现
  • Anaconda 安装NCL (Linux系统)
  • GithubPages+自定义域名+Cloudfare加速+浏览器收录(2025最新排坑)
  • [免费]SpringBoot+Vue扶贫管理系统【论文+源码+SQL脚本】
  • Unity3D 动态遮挡剔除(Occlusion Culling)
  • 基于Spring Boot的智能停车计费系统的设计与实现(LW+源码+讲解)
  • 针对 WebView 强制使用本地字体的完整解决方案
  • windows docker如何修改 默认的Container memory usage